平常写的程序,无论是单线程还是多线程,大多只有一个进程,而且只能在一个核心里工作。所以很多应用程序即使正在满载运行,在任务管理器中CPU使用量还是只有50%(双核CPU)或25%(四核CPU)
如果能让一个程序自己建立出多个进程,并且让它们并行运行,那么就可以在不同cpu核心上同时运行,进而实现并行计算啦。
Python的并行计算就是这么做的。
之前的理解错了......还是要学习一个
1、多线程与多进程
之前OS课学过.....
in general,线程是比进程低一级的调度单位。一个进程可以包含多个进程。
线程之间的切换相对于进程之间更为方便,代价也更低。所以讲道理多线程的效率比多进程是要高的。
Linux自从2.6内核开始,就会把不同的线程交给不同的核心去处理。Windows也从NT.4.0开始支持这一特性。
【ref:http://blog.csdn.net/delacroix_xu/article/details/5928121
2.多线程与Python
好多语言都可以很好的资词多线程。然而Python是个例外......
对于IO密集型的任务,使用多线程还是能提高一下CPU使用率。对于CPU密集型的任务,Python中的多线程其实是个鸡肋......没卵用......
在Python的解释器CPython中存在一个互斥锁。简单来讲就是同一时间只能有一个线程在执行,其它线程都处于block模式。
【ref:https://www.zhihu.com/question/22191088
3.多进程
要想在py中充分利用多核cpu,就只能用多进程了。
虽然代价高了些&#x