bio, nio, aio 的区别到底是什么,能不能说一下具体的使用场景 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
t202201
V2EX    Java

bio, nio, aio 的区别到底是什么,能不能说一下具体的使用场景

  •  
  •   t202201 Mar 10, 2023 2318 views
    This topic created in 1145 days ago, the information mentioned may be changed or developed.

    目前工作中,感觉一致都只是用 bio 读一些本地文件,都没用过 nio 和 aio ,最近在背八股,实在忍不住想知道,nio 和 aio 的使用场景是什么?跟我用一个 inputstream 读本地文件有啥区别?

    八股里都说 nio 和 aio 都说是适合并发较高的,不是很理解。既然这两个这么好,那为啥不用这两个?

    4 replies    2023-03-11 13:33:49 +08:00
    kwh
        1
    kwh  
       Mar 10, 2023
    响应式编程就是 nio 啊。
    webflux,quarkus 。
    因为响应式编程比阻塞编程难吧。
    协程也是 nio 吧。
    tairan2006
        2
    tairan2006  
       Mar 11, 2023 via Android
    NIO 参考 Linux epoll ,AIO 参考 windows 的 IOCP.
    你光在 jvm 里面看没啥意义…
    chenPiMeiHaoChi
        3
    chenPiMeiHaoChi  
       Mar 11, 2023
    spring 的 webflux 就是 nio ,写起来比 mvc 麻烦,可维护性也不如 mvc ,BUG 也不好查。
    cheng6563
        4
    cheng6563  
       Mar 11, 2023
    首先,Java 现在底层都是 NIO

    NIO: 连接建立后由一个全局线程一直询问连接收到数据没,这个询问操作不会阻塞。
    BIO:每次询问都来一点点数据,问 10 次都问不出一个完整的 HTTP 请求,代码太难写了,我还是再建一个线程不停地循环读取这个连接的数据吧。
    AIO:专门写个 HTTP 解析器缓冲处理 NIO 收到的数据,等拼出一个完整的 HTTP 请求后就异步调用你的业务代码。
    About     Help     Advertise     Blog     API     FAQ     Solana     3249 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 35ms UTC 13:21 PVG 21:21 LAX 06:21 JFK 09:21
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86