正如维基百科所说:
绿色线程在不依赖任何本机操作系统功能的情况下模拟多线程环境,并且它们在用户空间而不是内核空间中进行管理,使它们能够在没有本机线程支持的环境中工作。
Python 的线程被实现为pthreads (kernel threads)
,并且由于全局解释器锁 (GIL),Python 进程一次只运行一个线程。
[问题]但是在Green-threads
(或所谓的greenlet或tasklets)的情况下,
GIL
对他们有影响吗?一次可以运行多个greenlet吗?- 使用greenlets或tasklet有什么陷阱?
- 如果我使用greenlets,一个进程可以处理多少个?(我想知道,因为在单个进程中,您最多可以打开 *ix 系统中设置的ulimit(-s,-v)线程。)
我需要一点洞察力,如果有人能分享他们的经验,或者引导我走上正确的道路,那将会有所帮助。