Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java中的轻量级线程?_Java_Multithreading - Fatal编程技术网

Java中的轻量级线程?

Java中的轻量级线程?,java,multithreading,Java,Multithreading,是否有任何JSR或其他严肃的计划在Java中创建轻量级线程?类似于Golang的goroutines或Erlang进程 Java线程以其沉重的重量而闻名。每个线程使用512-1024KB的大小,因此这限制了最大线程数。java线程之间的上下文切换也需要“很长”的时间 我听说过Quasar“fibers”()是作为lib实现的轻量级线程。不过,它们的使用似乎有点棘手,并没有引起太多兴趣 理想情况下,轻量级线程应该构建到JVM的核心中。我不知道会有任何“轻量级”解决方案进入Java社区进程。查看条目

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

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

我听说过Quasar“fibers”()是作为lib实现的轻量级线程。不过,它们的使用似乎有点棘手,并没有引起太多兴趣

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

我不知道会有任何“轻量级”解决方案进入Java社区进程。查看条目。。。那里没有这样的消息。几年前有一个请求;但那东西看起来几乎“死了”


我认为你今天能得到的最接近的东西将是框架提供给你的东西;可以说,这些Akka参与者都是通过“轻量级线程”的活动运行的。

有一个关于JVM上轻量级线程(“光纤”)的建议,称为Project Lowe:


这是在早期阶段,什么都没有发布,但仍有一些东西值得关注。

你会考虑主线程模式在哪里重新使用线程吗?也许像Map Reduce或HAZELCAST之类的分布式版本?我想一个Web服务器能够处理100个同时的客户端同时保持一个(轻量级)。每个请求执行一个线程,并为每个客户机对外部系统进行同步调用。您不应该允许web服务器处理这个问题吗?无论如何,100000个并发客户机听起来非常多,所以您将使用某种形式的集群相关:在Java的开始,我们有“绿色线程”“这是线程的纯JVM实现,但后来被内核线程所取代。没错,我隐约记得当时看到这些东西有很多麻烦。但是我猜那些绿色的线也不是“轻量级的”;-)。。。但是考虑到你的其他评论,我认为Akka可能是一个好的开始。这里有一个关于绿色线程与本机线程的非常有见地的讨论:“绿色线程”或“轻量级线程”实际上是M:N调度。看到了吗,由于上面列出的原因,这几乎已经不再是一个可行的操作系统调度模型了。