Max*_*Max 4 python multithreading python-multithreading
我一直在尝试编写一个简单的python应用程序来实现一个工作队列,我发现每个网页都有一些随机的人对它进行评论,你不应该使用python线程因为这个或那个,有人可以帮助我吗?什么是Python线程,我可以使用它吗?如果是哪个lib?标准的还不错吗?
Python的线程非常可行,对许多任务都很有用.由于它们是使用本机操作系统线程实现的,因此它们允许执行阻塞系统调用并同时保持"运行" - 通过在单独的线程中调用阻塞系统调用.这对于必须同时执行多项操作的程序(即GUI和其他事件循环)非常有用,甚至可以提高IO绑定任务(例如Web抓取)的性能.
但是,由于全局解释器锁,它排除了Python解释器实际上同时运行多个线程,如果您希望通过线程在多个CPU核心上分配CPU密集型代码并以这种方式提高性能,那么您就不在运气.multiprocessing但是,您可以使用该模块执行此操作,该模块提供类似于threading使用进程而不是线程分配工作的接口.
我还应该补充说,C扩展不需要被GIL绑定,并且很多都会释放它,因此C扩展可以通过使用线程来使用多个内核.
所以,这一切都取决于你究竟需要做什么.