1
ShiehShieh OP 比如使用greenlet代替使用线程。
|
2
mhycy 2014-12-29 00:14:24 +08:00
个人认为很多地方都可代替...
事实上也有很多项目是这么做的 但是是否存在不可代替的情况,也不能否认有这种情况存在的可能性 |
3
lee0100317 2014-12-29 09:45:15 +08:00
IO消耗型操作可以,反之cpu消耗型操作不可以
|
4
ShiehShieh OP @lee0100317 可是CPU消耗性本身线程也没有优势啊。相反,协程还能够省下context-switch的开销,减少死锁,竞争。不是更应该使用协程代替线程么?
|
5
toooddchen 2014-12-29 15:12:17 +08:00 1
py的多线程在cpu密集的应用中, 速度比单线程显著的慢.
现在看, 除了 1) 运行的任务线程需要被os感知到. 2) 任务中包含阻塞的调用. 这两种情况外, 线程没什么不能被协程替代的. |
6
jamiesun 2014-12-29 20:26:12 +08:00 1
用了这么多年python,使用多线程的次数几乎忽略不计,更多的是使用协程多进程。曾经还以为pyqt的qthread是可以利用多核的,后来查证也不是。在正经的环境中多线程没有什么优势。
|
7
Zuckonit 2014-12-31 10:01:22 +08:00
协程+多进程
|