Your functional equation $f(x+y)=f(x)f(y)$ can be reduced to the (perhaps more familiar) additivity equation $g(x+y)=g(x)+g(y)$.
First note that, if $f(x_0)=0$ for some $x_0$, then $f(x)=0$ for all $x$. Of course the constant function $f(x)=0$ is a solution. From now on we assume $f(x)\ne0$. Then, since $f(x)=f(x/2)^2$ (and $f$ is real-valued), $f(x)\gt0$ for all $x$. Hence we can define $g(x)=\ln f(x)$, and then $g(x+y)=g(x)+g(y)$.
Therefore, the solutions of the functional equation $f(x+y)=f(x)f(y)$ are the constant function $f(x)=0$ and the functions of the form $f(x)=e^{g(x)}$ where $g$ is an additive function.
It's known that an additive function which satisfies some weak regularity condition (e.g., bounded on a set of positive Lebesgue measure) must be a linear function, $g(x)=cx$ where $c$ is a constant. On the other hand, discontinuous additive functions can be constructed using a Hamel basis for the real numbers over the rational numbers.