Recently, multi-core CPUs have been introduced widely into personal computers. Such a multi-core CPU has more than one processing unit. In order to make the best use of multi-core CPUs to execute Differential Evolution (DE) in a short time, this paper presents and compares four implementation techniques of a concurrent version of DE, which is called Concurrent DE (CDE). The concurrent program of CDE consists of one main thread and multiple worker threads. In the implementation of synchronous version of CDE, synchronous control of all worker threads is used. On the other hand, in the implementation of asynchronous version of CDE, exclusive control between worker threads is used. Furthermore, in order to assign tasks, or the manipulations of individuals, to respective worker threads, the dynamic and the static allocations of tasks are employed by each of synchronous and asynchronous versions of CDE. Through numerical experiments and statistical tests conducted on a popular multi-core CPU, it is shown that the difference between CDE's implementations affects not only the run-time but also the quality of solutions.