@
wangfeng3769 书接上回
我再说直白点吧
stackless既不是进程也不是线程, 只是协程, 用来切换context的, 和greenlet或python新内置的yield from大致相仿, 并不具备进程或线程具备的任何并发或者并行运算能力.
python因为GIL, 对于纯py运算或者没释放GIL的扩展无法有效利用多核, 所以Python的线程主要用途就是处理IO堵塞问题. 基于这个前提, 通常说的Python用"协程库代替线程"指的是*异步协程库*(如eventlet、gevent或者yield from + asyncio, 或者类似twisted或tornado)代替多线程处理*部分IO操作*实现并发(本地文件的读写或者sock隐藏在C/C++库里没暴露接口是替代不了的), 你指望没有异步IO的封装, 单靠stackless来替代多线程就好像指望拿着一扇车窗代步一样.
stackless少人用无关渣不渣, 而是stackless已经释出了cPython下能用的greenlet模块, 比起装一个stackless python, pip install greenlet轻量方便得多. second life一直被作为拿stackless做游戏的代表, 而其在七八年前就放出了主要基于greenlet的异步协程库eventlet(也能在stackless下运行, 但是是把stackless封装成greenlet的接口实现的), 国内的沈游侠六七年前启动
eurasia项目, 之后火速把一开始用的stackless换成了greenlet. 你的信息源是对的, 只不过大致滞后了十年.