Threads and processes differ from one operating system to another but, in general, a thread is contained inside a process and different threads in the same process share some resources while different processes do not.
I.E. a multi-threaded single process application can't run on two cores. The distinction is subtle, I think, but yes, before an application can run on multiple cores it needs multiple threads.
Uh... did you mean "it needs multiple processes"? Because I think otherwise your statement contradicts itself...
Also, if your statement is "multi-threaded single process application can't run on two cores" then I
think you're wrong. What you quoted just says that threads share some resources, but that does not mean they cannot run on two cores.
I also looked up wikipedia (
link btw), and the distinction in between threads and processes seems to be somewhat blurry, but I think it just comes down to processes are more like independent programs, whereas threads are more part of the same program, i.e. share more resources directly. It's not a clear cut because processes can communicate with each other, too.
So for DF for example, you could from th DF process create multiple threads, which share resources in that they access the same memory (e.g., to do independent path finding from a shared map data structure).
If that doesn't convince, here another quote from the same article:
Multithreading [...]. However, perhaps the most interesting application of the technology is when it is applied to a single process to enable parallel execution on a multiprocessor system.