最新回答 / 慕侠1360162
IO密集型,确实多线程耗时更短CPU核数可以理解为里面有几个工人,单核里面只有一个,多核有n个,对于n个工时量的项目,单核需要n小时完成,而多核有n个工人同时干,只需要一个小时就能完成;但python中由于GIL的存在,同时只能有一个线程运行。就好多核里面的n个工人,但同时只能有1个人工作,其他只能划划水,多核的优势完全被浪费掉了。而且还多了几个工人去抢着工作耗费的无意义时间,也就是你所说的时间片的切换耗时,所以导致耗费时间比单线程要更多。
2020-11-09
最新回答 / 慕先生4398378
因为这"老师"有些地方讲错了python用threading.Thread形式开出来的线程, 都活在同一个核上, 所以共用一个GIL而用multiprocessing.Process这样开出来的进程, 是互相独立的(可以打印pid号发现), 每个进程使用各自的GIL, 进程间的GIL不相干.
2020-06-21