根据维基百科所述:
绿色线程是一种模拟多线程环境的方式,不依赖于任何本地操作系统功能,并且它们在用户空间中管理而不是内核空间中,使它们能够在没有原生线程支持的环境中工作。
Python的线程使用pthreads(内核线程)
实现,并且由于全局解释器锁(GIL)的存在,Python进程一次只运行一个线程。
[问题]
但是,在使用Green-threads
(或称为greenlet或tasklet)时:
GIL
是否影响它们?是否可以同时运行多个greenlet?- 使用greenlets或tasklets的缺点有哪些?
- 如果我使用greenlets,一个进程可以处理多少个greenlets?(我想知道这个因为在单个进程中,您可以打开线程直到在您的*ix系统中设置的ulimit(-s,-v))。
我需要一点见解,如果有人能分享他们的经验,或者指导我走向正确的道路,那将会很有帮助。