首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

【JUC基础】07. wait(),notify()虚假唤醒

Thread.currentThread().getName() + "执行了sub(),number====>" + number); this.notifyAll(); } } 预期的结果应该是: 线程tread-add...-1执行,判断到number==0,就number++;这时候控制台打印number==>1 线程tread-sub-1执行,判断到number==0,则进行等待;等到tread-add-1执行完毕后,...唤醒了tread-sub-1执行,这时候tread-sub-1就执行了number--操作;这时候控制台打印number==>0 实际执行结果:  果然是这样。...-1执行,判断到number==0,就number++;这时候控制台打印number==>1 线程tread-sub-1执行,判断到number==0,则进行等待;等到tread-add-1执行完毕后,...唤醒了tread-sub-1执行,这时候tread-sub-1就执行了number--操作;这时候控制台打印number==>0 实际执行结果:  很明显结果不对了,甚至出现了负数等值。

12810

一文读懂五大 IO 模型的前世今生( select、epoll、epoll)

// 监听while(1) { connfd = accept(listenfd); // 阻塞 等待建立连接 arr.add(connfd);}// 异步线程检测 连接是否可读new Tread...// 监听while(1) { connfd = accept(listenfd); // 阻塞 等待建立连接 arr.add(connfd);}// 异步线程检测 连接是否可读new Tread...while(1) { connfd = accept(listenfd); // 阻塞 等待建立连接 arr.add(connfd);}// 异步线程检测 通过 select 判断是否有连接可读new Tread...select 使用固定长度的 BitsMap,表示文件描述符集合,而且所支持的文件描述符的个数是有限制的,在 Linux 系统中,由内核中的 FD_SETSIZE 限制, 默认最大值为 1024,只能监听...; // 阻塞 等待建立连接 epoll_ctl(connfd, ...); // 将新连接加入到 epoll 对象}// 异步线程检测 通过 epoll_wait 阻塞获取可读的套接字new Tread

44530
领券