python 初学者, 偶然看到网上讨论 gevent ,于是把我之前的 thread 修改成了 gevent 的,
但是我在调试的时候,发现 call stack 里面在调用那部分 gevent 代码的时候,新建了 10 来个新的线程
不是说 gevent 都运行在一个线程里面吗?
大致的伪代码如下:
以前用多线程来做,
1000 tasks, 分成 10 个线程,每个线程分 100 个 task ,等待所有线程退出
现在的逻辑,一个 for 循环把所有的 tasks 分给 1000 个 gevent.spawn 调用, joinall 等待退出。
问题 1 :是不是这里 for 循环 扔 1000 个 gevent.spawn 操作太暴力了?
问题 2 :为什么后面换成 gevent 后,居然给我创建了 10 来个线程?
但是我在调试的时候,发现 call stack 里面在调用那部分 gevent 代码的时候,新建了 10 来个新的线程
不是说 gevent 都运行在一个线程里面吗?
大致的伪代码如下:
以前用多线程来做,
1000 tasks, 分成 10 个线程,每个线程分 100 个 task ,等待所有线程退出
现在的逻辑,一个 for 循环把所有的 tasks 分给 1000 个 gevent.spawn 调用, joinall 等待退出。
问题 1 :是不是这里 for 循环 扔 1000 个 gevent.spawn 操作太暴力了?
问题 2 :为什么后面换成 gevent 后,居然给我创建了 10 来个线程?