我想用一种语言开始一个新的网络服务器项目,该语言支持通过纤程也就是协程又称为用户模式线程的并发性。确定我的选择到底是什么非常困难,因为术语“协程”似乎很松散地用于表示各种事物,而“纤维”几乎专门用于参考 Win32 API。
出于这个问题的目的,协程/纤维:
- 支持通过从嵌套函数中向调用函数产生结果来暂停执行的方法(即在调用协程/光纤的调用堆栈中的任意深度)
- 支持在当前执行点将控制权转移到另一个任意协程(即让出一个没有调用你的协程的协程)
我有哪些语言选项?我知道 Ruby 1.9 和 Perl (Coro) 都有支持,还有什么?任何具有成熟 gc 和动态方法调用的东西就足够了。