请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于BIO和NIO的第一阶段

BIO的第一阶段是请求系统,然后线程挂起;NIO是类似自旋一样不断主动询问系统是否准备好返回数据,那其实相当于第一阶段请求的线程都没有去做这个请求之外的事情,而且NIO的主动询问还占用cpu的时间片,还不如BIO的第一阶段,我这样理解的误区在哪

正在回答

1回答

翔仔 2020-05-22 15:23:43

同学好,nio不一定都是在那等着循环查看是否有数据返回,可以是callback或者线程提交请求后先去忙别的,过一段时间再来看是否有数据返回,从整体上来说不阻塞线程的运行


0 回复 有任何疑惑可以回复我~
  • 提问者 莨菽菽 #1
    callback或者线程提交请求后先去忙别的,过一段时间再来看是否有数据返回----------这个不是nio和aio的区别么,怎么nio也可以这样?那这样aio和nio的区别不就只是有无selector和nio全部都是用callback而已,这样和nio其实差不多啊?
    回复 有任何疑惑可以回复我~ 2020-05-22 16:41:29
  • 翔仔 回复 提问者 莨菽菽 #2
    不是呢,nio是需要自己在忙别的事情的时候,定时挂起回来轮询一下是否ready,也就是用户线程需要主动查询,而aio让内核系统完成,用户线程只需要告诉内核,当缓冲区就绪后,通知我或者执行我交给你的回调函数
    回复 有任何疑惑可以回复我~ 2020-05-24 00:15:38
  • 提问者 莨菽菽 #3
    非常感谢!
    回复 有任何疑惑可以回复我~ 2020-05-24 13:30:20
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号