Java中的轻量级线程?

时间:2016-12-21 11:10:58

标签: java multithreading

是否有任何JSR或其他严肃的举措在Java中创建轻量级线程?类似于Golang的goroutines或Erlang进程。

Java线程因其重量级而闻名。每个线程使用512-1024 kb的东西,因此这限制了最大线程数。 java线程之间的上下文切换也需要“很长”的时间。

我听说过Quasar“fiber”(http://docs.paralleluniverse.co/quasar/),它们是作为lib实现的轻量级线程。虽然它们看起来有点棘手但并没有引起很大的兴趣。

理想情况下,轻量级线程应该构建在JVM的核心中。

2 个答案:

答案 0 :(得分:6)

JVM上有一个名为Project Loom的轻量级线程(" fiber")的提议:http://cr.openjdk.java.net/~rpressler/loom/Loom-Proposal.html

它处于早期阶段,尚未发布,但仍有待关注。

答案 1 :(得分:4)

我不知道任何“轻量级”解决方案将会进入Java社区流程。查看jep条目......没有关于那里的任何信息。有coroutines年的请求;但那件事看起来很“死”。

我认为你最接近今天会更像是akka框架为你提供的东西;因为那些Akka演员都以“轻量级线程”运行,可以这么说。