据我所知,我们可以将所有SocketChannel注册到服务器端的一个Selector中,但为什么?将这些SocketChannel添加到ArrayList中有什么区别,然后我手动迭代这个List?Java中的Selector的优势
0
A
回答
1
选择器允许JVM实现与操作系统select/epoll/kqueue(或等效)机制高效地工作,方法是将工作推入适当的内核/驱动程序。这些功能的现代操作系统实现通常被认为是O(1)。
也就是说,Java本身可以“休眠”,直到底层操作系统发出一个或多个通道的信号 - 这是通过选择器在Java NIO中配置和报告的。
在与选择器的循环中,选择将“阻止”,直到存在频道更改 - 因此与选择器保持一致可以有效地找到相关频道并处理它们。上述目标的一部分是保持“每事件”处理O(c),其中当处理n个通道时。
+0
嗨,是事件驱动的东西? – Alexis
+0
@亚历克斯好吧,不错。可以说Selector.select“等待事件”。 – user2864740
1
相关问题
- 1. Enum的Java优势
- 2. 定义优势的优势
- 3. 优势Activator.CreateInstance的
- 4. BTREE的优势?
- 5. NoSQL的优势
- 6. 优势的ArrayList
- 7. directExecutor的优势
- 8. JAVA NIO Selector中的查询?
- 9. noSql优于newSql的优势
- 10. MySQLi优于MySQL的优势
- 11. SqlEntityConnection优于SqlDataConnection的优势?
- 12. nodemailer中XOAUTH2的优势
- 13. C#中的属性优势
- 14. keras中fit_generator()的优势
- 15. GAE NDB中BooleanProperty的优势
- 16. java bean比Java Spring中的POJO有什么优势?
- 17. nuSOAP WebService的优势?
- 18. 优势VS ReSharper的
- 19. Spring Boot的优势
- 20. 优势B树+的
- 21. 优势在Node.js的
- 22. setMaxConcurrentOperationCount = 1的优势
- 23. Jquery Templates的优势
- 24. Jikes RVM的优势
- 25. 优势
- 26. 优势
- 27. 优势
- 28. 优势
- 29. 优势
- 30. #selector在手势识别在xcode9
对于非阻塞事件,使用选择器和监视器通道更容易。 –