Green-threads and thread in Python

8 浏览
0 Comments

Green-threads and thread in Python

根据维基百科的说法,绿色线程是在不依赖于任何本地操作系统能力的情况下模拟多线程环境的,它们是在用户空间而不是内核空间中进行管理,使它们能够在没有本地线程支持的环境中工作。

Python的线程是作为pthreads(内核线程)实现的,并且由于全局解释器锁(GIL)的存在,Python进程一次只能运行一个线程。

但是在绿色线程(或所谓的greenlet或tasklet)的情况下:

1. GIL是否会影响它们?是否可以同时运行多个greenlet?

2. 使用greenlet或tasklet有哪些问题?

3. 如果使用greenlet,一个进程可以处理多少个greenlet?(我想知道,因为在单个进程中,您可以打开的线程数取决于在您的*ix系统中设置的ulimit(-s, -v))

我需要一些见解,如果有人能分享他们的经验,或者指引我走向正确的道路,那将非常有帮助。

0