Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/360.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 Scala play框架和NIO.2_Java_Scala_Asynchronous_Playframework_Nio - Fatal编程技术网

Java Scala play框架和NIO.2

Java Scala play框架和NIO.2,java,scala,asynchronous,playframework,nio,Java,Scala,Asynchronous,Playframework,Nio,我在scala中编程,使用play framework 2.5.3开发一个web应用程序,我需要创建一个TCP服务器/客户端,它将利用play的异步模型。读了一点书之后。 我学习了Java7中的NIO.2的异步服务器socketchannel/AsynchronousSocketChannel。我在Github()上找到了一个用于Scala的NIO.2实现 修改后,我能够运行代码并检查jvisualvm中的线程。我注意到NIO.2在接受连接时正在创建自己的线程。我担心NIO.2的线程和play

我在
scala
中编程,使用
play framework 2.5.3
开发一个web应用程序,我需要创建一个TCP服务器/客户端,它将利用play的异步模型。读了一点书之后。 我学习了Java7中的
NIO.2的
异步服务器socketchannel/AsynchronousSocketChannel
。我在Github()上找到了一个用于Scala的NIO.2实现

修改后,我能够运行代码并检查
jvisualvm
中的线程。我注意到NIO.2在接受连接时正在创建自己的线程。我担心
NIO.2的线程
play framework的调度程序线程在高压力下会导致问题并降低web应用程序的速度。这会导致问题吗?有没有更好的方法将NIO.2集成到play框架的异步模型中

先谢谢你
Francis

当Play使用Netty进行I/O时,Netty有自己的线程池,并且不会导致问题()。因此,我可以假设NIO.2拥有自己的线程池这一事实也是安全的

同时,您可以将NIO.2配置为使用与Play相同的线程池。首先,提取剧本的线程池。将其命名为执行器。然后

AsynchronousChannelGroup group = AsynchronousChannelGroup.withThreadPool(executor);
AsynchronousServerSocketChannel channel = AsynchronousServerSocketChannel.open(group);
AsynchronousSocketChannel channel = AsynchronousSocketChannel.open(group);

当Play使用Netty进行I/O时,Netty有自己的线程池,并且不会导致问题()。因此,我可以假设NIO.2拥有自己的线程池这一事实也是安全的

同时,您可以将NIO.2配置为使用与Play相同的线程池。首先,提取剧本的线程池。将其命名为执行器。然后

AsynchronousChannelGroup group = AsynchronousChannelGroup.withThreadPool(executor);
AsynchronousServerSocketChannel channel = AsynchronousServerSocketChannel.open(group);
AsynchronousSocketChannel channel = AsynchronousSocketChannel.open(group);