关于如何在Python中使用线程的一般教程或好资源?
何时使用线程,它们如何有效,以及线程的某些一般背景[特定于Python]?
当你想要一次运行两件事时,或者想要在后台运行某些东西而不减慢主进程的速度时,应该使用线程.
我建议只在必要时才使用线程.它们通常会增加程序的复杂性.
线程的主要文档在这里:http://docs.python.org/library/threading.html这里
有一些例子:
http://www.devshed.com/c/a/Python/Basic-Threading-in- Python/1/
http://linuxgazette.net/107/pai.html
http://www.wellho.net/solutions/python-python-threads-a-first-example.html
在花费时间和精力编写多线程Python应用程序之前要记住的一件事是有一个全局解释器锁(GIL),所以你实际上不会一次运行多个线程.
这使得线程不适合尝试利用多个内核或CPU.您可以从多路复用其他资源(网络,磁盘......)中获得一些加速,但在我的经验中它从来没有特别明显.
通常,我只在一次发生几个逻辑上独立的任务时使用线程,但我希望它们都在同一个VM中.一个线程从Web中提取数据并将其放在Queue上,而另一个线程从Queue弹出并写入数据库,就像这样.
使用Python 2.6,有multiprocessing
一个非常酷的新模块 - 它有一个非常类似于threading
模块的接口,但实际上产生了新的操作系统进程,回避了GIL.