Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/16.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
Scala/Java中的NIO问题是什么_Java_Scala_Concurrency_Parallel Processing_Nio - Fatal编程技术网

Scala/Java中的NIO问题是什么

Scala/Java中的NIO问题是什么,java,scala,concurrency,parallel-processing,nio,Java,Scala,Concurrency,Parallel Processing,Nio,在搜索jvm中的并发性时,我发现了有关搜索Scala/Java的非阻塞IO库的问题 问题出在哪里?如果我想发送一些东西到文件/套接字,我可以启动单独的线程来完成这项工作 我知道使用基于事件的线程可能会有问题,因为整个系统可能会被阻塞。但它是否引用了JVM/Scala 添加了: 如果我错了,请纠正我: 我认为,当您需要以异步方式调用某些IO函数时,它需要进入单独的进程或系统(重)线程。我说得对吗 因此,用通用语言解决这类问题的所有问题都涉及到创建和管理单独的进程或线程。因此,该语言的唯一便利之处是

在搜索jvm中的并发性时,我发现了有关搜索Scala/Java的非阻塞IO库的问题

问题出在哪里?如果我想发送一些东西到文件/套接字,我可以启动单独的线程来完成这项工作

我知道使用基于事件的线程可能会有问题,因为整个系统可能会被阻塞。但它是否引用了JVM/Scala

添加了
如果我错了,请纠正我:
我认为,当您需要以异步方式调用某些IO函数时,它需要进入单独的进程或系统(重)线程。我说得对吗
因此,用通用语言解决这类问题的所有问题都涉及到创建和管理单独的进程或线程。因此,该语言的唯一便利之处是创建一些线程池,这些线程将以异步方式分配给IO操作

所以我的假设是。
语言X比语言Y更好,因为调用异步IO操作不会阻止虚拟机是错误的,因为在支持系统线程的每种语言中都有可能管理NIO,唯一的区别是语言X通过内置库/语言特性对此有更好的支持

  • 这一假设是真的吗?
  • 一些语言在没有操作系统支持的情况下能否实现NIO?(通过进程/线程)

  • Scala有很多用于并发的工具,NIO有一些用于非阻塞IO的工具。因此,不足为奇的是,有很多伟大的库可以帮助连接这些点:

    • 。。。用于建筑的图书馆 异步RPC服务器和客户端 使用Java、Scala或任何JVM语言。 建在Netty之上的Finagle提供了 提供了一套丰富的协议工具 独立的

    • 是一个非常好的、功能强大的actors/concurrency/services包,它还使用Netty实现其内置的远程处理功能

    • 是另一个来自推特的,也是建立在Netty上的,但不确定它是否被欺骗所取代


    最近有一篇有趣的博客文章可能会帮助你:

    请澄清你的问题。举个例子也许会有帮助,也许还可以参考一下你在网上找到的资料来源。你有没有考虑过你可能有很多很多的联系,而这些联系都没有被大量使用?你确定你想为每一个都花一个线程吗?好的,我可以做一些池。但我只是认为,没有系统进程/线程,没有其他方法可以实现。我的adding@Aaron-我提出这个问题的原因之一是: