尽管GIL施加了限制,但在Python中使用线程有什么用?

时间:2015-06-01 15:11:41

标签: python multithreading python-multithreading python-multiprocessing

我试图理解这个问题。我做了一些研究,发现多线程一项任务比顺序任务慢得多。尊敬的David Beazley在他的一些并发任务中也提到了同样的问题。为了实现类似(某种)行为,我可以使用多处理模块生成一个新进程,但是生成一个进程比生成一个线程需要更多的时间。所以,我想知道在哪些用例中我可以使用除I / O绑定任务之外的线程模块。请帮我理解这一点。

1 个答案:

答案 0 :(得分:3)

实际限制是CPython限制,而不是语言限制。鉴于此,线程可用于运行并发任务,只要(在CPython中)只有一个任务具有python代码。

除了IO之外,一个例子是c扩展,它执行冗长的计算并释放GIL(在CPython的情况下)。