`

JAVA使用EPoll来进行NIO处理的方法

 
阅读更多
JDK 6.0 以及JDK 5.0 update 9 的 nio支持epoll (仅限 Linux 系统 ),对并发idle connection会有大幅度的性能提升,这就是很多网络服务器应用程序需要的。

启用的方法如下:
-Djava.nio.channels.spi.SelectorProvider=sun.nio.ch.EPollSelectorProvider



例如在 Linux 下运行的 Tomcat 使用 NIO Connector ,那么启用 epoll 对性能的提升会有帮助。

而 Tomcat 要启用这个选项的做法是在 catalina.sh 的开头加入下面这一行
CATALINA_OPTS='-Djava.nio.channels.spi.SelectorProvider=sun.nio.ch.EPollSelectorProvider'
分享到:
评论

相关推荐

    Java NIO原理和使用

    Java NIO非堵塞应用通常适用用在I/O读写等方面,我们知道,系统运行的性能...通过仔细阅读这个例程,相信你已经大致了解NIO的原理和使用方法,下一篇,我们将使用多线程来处理这些数据,再搭建一个自己的Reactor模式。

    高手使用Java NIO编写高性能的服务器

    总结来说,Java NIO通过引入非阻塞I/O和选择器,优化了服务器的并发处理能力,使得Java在构建高性能网络服务时有了更强的竞争力。理解并熟练运用NIO,对于提升Java应用的性能和可扩展性至关重要。通过合理设计和使用...

    Java NIO——Selector机制解析三(源码分析)

    Java NIO的Selector实现主要由`sun.nio.ch.SelectorImpl`类完成,其内部使用了操作系统提供的多路复用I/O机制,如Linux的epoll、Windows的IOCP等。`select()`方法实际上会调用操作系统API,阻塞等待直到有事件发生。...

    NIO 入门.chm,NIO 入门.chm

    **NIO(New Input/Output)是Java编程语言中用于替代标准I/O(BIO,Blocking I/O)的一组API,它提供了非阻塞式的I/O操作方式,极大地提升了Java在处理I/O密集型应用时的性能。NIO在Java 1.4版本中被引入,之后在...

    Reilly__Java_NIO英文版和中文版

    NIO在Java 1.4版本中引入,为高性能、并发I/O处理提供了新的解决方案。Reilly的《Java NIO》是一本权威的指南,深入介绍了这一强大的技术。 该书英文版和中文版的提供,对于学习和理解Java NIO具有很大的帮助。英文...

    3种下载文件程序的思考,为何使用NIO进行异步网络通讯

    标题中的“3种下载文件程序的思考,为何使用NIO进行异步网络通讯”提示了我们探讨的主题,即网络通信中的不同下载策略以及为何选择非阻塞I/O(Non-blocking I/O, NIO)作为异步通信的方式。在这个话题中,我们将深入...

    基于Java NIO的网络编程框架.zip

    本项目深入探讨了Java网络编程中的多种模式,包括BIO(阻塞IO)、NIO(非阻塞IO)、IO多路复用(select、poll、epoll)、Reactor模式,以及零拷贝技术。通过这些实现,项目展示了如何在高并发环境下优化网络通信效率...

    tomcat:Java使用nio模式实现tomcat

    Java NIO(New IO)是Java 1.4版本引入的一种新的I/O API,它提供了非阻塞I/O操作的能力,极大地提升了Java处理网络通信的能力。在Tomcat服务器的实现中,NIO模式被用来提高其性能和并发能力,尤其是在高并发场景下...

    javaNIO学习笔记(csdn)————程序.pdf

    5. Reactor调用相应事件处理器的方法来处理事件。 6. 事件处理器执行具体的业务逻辑。 NIO通过非阻塞的特性,结合选择器和事件驱动的机制,使得Java程序能够高效地处理大量并发的I/O操作,特别适合构建高性能的网络...

    解读NIOSELECTEpoll思想 P8专家级面试题你也能听懂

    Jedis是Redis的Java客户端,能够方便地通过NIO来进行网络通信,使得Java应用能够利用Redis的高性能特性。 此外,课程也提到了操作系统和内核之间的系统调用关系,比如epoll_create、epoll_wait和epoll_ctl。这些...

    深度剖析jvm+nio

    而NIO(Non-blocking Input/Output)是Java提供的一种I/O模型,与传统的阻塞I/O模型(BIO)相对,极大地提高了程序在处理大量并发连接时的效率。阿里巴巴的扫地僧多隆,以其深厚的Java技术底蕴,为我们带来了关于JVM...

    java物联网源码-IOtest:JavaNIO与linuxepoll和WindowsAysnchronous之间的一些测试程序,带有源代码视

    源代码视图提供了深入理解这些测试细节的机会,包括如何设置和使用Java NIO的Selector、Channel和Buffer,如何与epoll或Windows异步I/O接口交互,以及如何收集和分析性能数据。通过分析和修改这些源代码,开发者可以...

    NIO trick and trap .pdf

    - **ByteBuffer的选择**:根据应用场景选择合适的`ByteBuffer`类型,如使用`DirectByteBuffer`来减少数据复制。 - **ViewByteBuffer**:提供视图,允许共享相同的底层缓冲区数据,提高效率。 - **FileChannel....

    Java IO应届生培训讲义

    综上所述,Java IO培训讲义通过系统介绍Java IO的基本概念和模型,帮助应届生理解并掌握Java IO类库的使用,特别是在了解和应用不同IO模型时的注意事项和实践方法。通过这份讲义,初学者能更好地理解和编写涉及Java ...

    java-network-programming网络编程Java实现

    它使用了EPOLL事件驱动模型(在Unix-like系统上)和NIO(在所有平台上),并提供了一套丰富的处理管道(Channel Pipeline)和处理器(Channel Handler)来处理网络事件。 总结一下,Java网络编程涉及的主要知识点...

    Netty应用说明笔记

    4. 操作系统兼容性:Netty针对不同操作系统进行了优化,特别是对Linux内核的epoll事件模型,解决了Java NIO中的poll/epoll bug,降低了CPU使用率。 不选择Netty 5的原因可能包括: 1. ForkJoinPool带来的复杂性:...

    Scalable IO in Java

    总结来说,Scalable IO in Java涉及多个层次,从基础IO流的优化到NIO和NIO.2的使用,再到并发策略和流式API的集成,这些都是提升Java应用程序在处理大量数据时性能和可扩展性的关键要素。理解并熟练运用这些技术,...

    异步通信核心简单实现(Java)

    本主题将深入探讨如何使用Java的非阻塞I/O(Non-blocking Input/Output,NIO)包来实现一个简单的异步通信核心,重点关注NIO中的通道(Channel)、通道选择器(Selector)和选择器键(Selector Key)。 1. **Java ...

    传统BIO编程模型及NIO编程模型源码

    Netty使用了高级的NIO特性,如epoll和kqueue,提供了更高效的性能和更好的可扩展性。 在Netty中,BIO和NIO的源码分析可以帮助我们深入了解底层的I/O机制,理解如何通过Java API实现高效的网络通信。学习这些源码...

Global site tag (gtag.js) - Google Analytics