Java NIO触发方式(一次NIO网络编程实现发现的坑)

本文介绍了Java NIO中的水平触发模式,对比了它与边缘触发的区别。在Linux的IO多路复用中,水平触发意味着只要数据未完全读取,就会持续触发事件。文章通过一个例子说明了这一特性。
摘要由CSDN通过智能技术生成

触发方式简介

在linux的IO多路复用中有水平触发,边缘触发两种模式,这两种模式的区别如下:
水平触发: 只要满足条件,就触发一个事件(只要有数据没有被获取,内核就不断通知你)
边缘触发: 每当状态变化时,触发一个事件。
而Java NIO属于水平触发,即有数据没读完,就会一直触发事件。

举例证明

public void start() {
   
        this.init();
        while (true) {
   
            try {
   
                int event = selector.select();
                if (event > 0) {
   
                    Iterator<SelectionKey> SelectionKeys = selector.selectedKeys().iterator();
                    while (SelectionKeys
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值