Yes, they can. In most operating system I'm aware of, and certainly under Windows and Linux, there is nothing that says that only one of a process's threads can run at a time. In fact the Windows scheduler pays very little attention to "which process did a thread come from?" in making its decisions. On a system with n cores, n threads can run at literally the same time. It doesn't matter if they're all from one process, from four different processes, or any combination.
For Windows you can demonstrate this easily with the "cpustres" app. You can find this in the "Windows Internals book tools", a package distributed by Mark Russinovich at the sysinternals tools site. Get your system as quiet as possible, then use cpustres to create two threads and set their "activity level" to maximum. Then check your CPU time graphs in Task Manager. Or use Process Explorer to watch the CPU time of the two threads.
The Windows Internals book includes complete information on how the scheduler (not the "task scheduler", the thread scheduler) does its job. It's a long read, but worth it. The latest version of that book covers Windows 7 but there haven't been any large changes in this area since then.
1
If they couldn't be, then no process could be multi-threaded. See this SO question and answers: What is the difference between a process and a thread
– Ƭᴇcʜιᴇ007 – 2014-09-12T19:49:44.3271Process can be multithreaded if the threads were time sliced within their process time slice. Which they would have to be on a single processor computer. Again, your answer is not definitive. – shawnhcorey – 2014-09-12T21:08:42.760
From a hardware implementation point of view I can see how a person can ask this question. The hardware could be simpler if a process' memory space was restricted to a specific core, thus threads would be restricted as well. Multi-threaded would imply logical execution isolation but not actual parallel processing. Only separate processes could actually be concurrent. HOWEVER, this is not the case, it is parallel. You can check by creating 4 threads each with a lengthy loop :) – Michael – 2018-02-08T00:27:40.403