正如标题所说,因为在Python中我们有GIL,它说任何时候只有一个线程可以执行代码,这意味着单独的线程并不真正并行运行,而是#34 ;隔行"但仍然只使用CPU的一个核心。
这基本上没有打败整个线程概念吗?因为并行使用线程并不是完全可能的,因为它们并不真正并行运行?
我已经找到了一些有关此问题的答案,但没有明确解决这个问题,如果问题的这个具体方面已经得到解答,我道歉。
答案 0 :(得分:1)
不完全。 GIL将防止计算上昂贵的线程同时执行,并且不会提高性能。
另一方面,非计算任务(例如,文件I / O)可以是多线程的,以大大提高性能。想象一下,你必须写40个文件。如果计算机可以同时处理20个写入,那么使用多线程可以比使用阻塞和写入每个文件更快地完成写入。