Nim*_*Net 10 process multi-core threads
我知道多核处理器可以使用其不同的内核同时运行同一进程的多个线程。
是否也可以同时运行多个进程(每个内核运行不同的进程)?
根据我对操作系统的有限了解,我相信每个进程至少有一个线程,并且是这些线程被调度,而不是进程本身。该进程只保存有关程序和它已设置运行的线程的信息。这样,单线程应用程序得到与多线程应用程序相同的处理,但多线程应用程序可以更好地使用资源。
例如,假设我们有两个进程,每个进程有两个线程和一个单线程应用程序,都在双核处理器(或双 CPU,这里没有区别)上努力工作
Process A
|_Thread A-1
|_Thread A-2
Process B
|_Thread B-1
|_Thread B-2
Process C
|_Thread C
Run Code Online (Sandbox Code Playgroud)
每个线程都可以跨 CPU 的所有内核进行调度,并且负载由 OS 调度程序平衡。
如果我们然后为进程 B 设置处理器关联以将其限制为一个 CPU,那么该进程的所有线程也都绑定到该 CPU,并且不会在任何其他 CPU 上运行。对进程 C 执行相同操作不会导致真正的更改,因为它一次只能在一个 CPU 上运行。
归档时间: |
|
查看次数: |
15832 次 |
最近记录: |