而我完全了解 Scala 和 Akka 演员,以及其他非标准 Scala 并发包,已经习惯了Gevent(它是 Python 的绿色线程 + 非阻塞 IO 框架/库,尚未获得与 NodeJS 和各种 Actor 框架之类的东西相比,我认为它值得关注)以及用它编写并发代码是多么容易——只需像使用“真实”线程一样编写代码,但不使用实际的 OS 线程,所以你可以有数千个,比如 Erlang 进程,所有现有代码都可以工作——我不得不说我目前并不太喜欢并发代码的相当有限(并且有点难以用“普通代码”组合)的方式使用 Akka 风格的 actor 时需要编写。
现在,有Kilim,它似乎正在做 Gevent 正在做的事情(除了它使用 CPS 转换而不是运行时堆栈操作);此外,众所周知,Scala 能够与 Java 完全互操作。然而,这种互操作性是否完全扩展到 Kilim 的运行级别?如果是,那么在实现 Scala 和 Kilim 的组合时要记住哪些关键事项?我通过谷歌搜索找到了一些资源(例如https://github.com/lllazu/kilim-scala),但没有明确或实质性的内容。
注意:我也对以下方面感兴趣:
- 为什么这是一种通常不鼓励使用的方法(即我应该使用 Akka);
- 我错了,Akka 风格的演员代码没有限制,或者限制不足以对(高级)代码风格产生任何重大影响;