我们都知道GIL的恐怖之处,并且我已经看到了很多有关使用multiprocessing
模块的正确时间的讨论,但是我仍然不觉得我对使用Python进行线程化有很好的直觉(专注于主要在CPython上)是正确的答案。
在哪些情况下,GIL并非重大瓶颈?线程是最合适答案的用例类型是什么?
线程只有在您有大量阻塞I /
O发生时才有意义。如果真是这样,那么某些线程可以睡眠,而其他线程可以工作。如果线程受CPU限制,则多线程处理不太可能带来很多好处。
请注意,尽管多处理模块很难编写代码,但它使用了单独的进程,因此不会遭受GIL的不利影响。