Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
3.9k views
in Technique[技术] by (71.8m points)

为什么说NIO能处理更高的并发链接?

一直都说NIO相对BIO来说可以处理更高的并发链接,但是觉得NIO处理高并发的链接,也只是接受了tcp链接而已,是qps,等待处理的任务还是放在“事件队列”当中,等待后面的“业务线程池”处理,虽然说qps高,但是tps仍然受制于后面的业务线程池,所以对于“客户端”来说,NIO虽然是握手成功了,但是仍然是阻塞在那里,客户端也是等待!所以,NIO的优势在哪里呢?如下图:图1是NIO,图2是BIO。

image.png
图1

image.png
图2


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

你已经知道是提升的是“并发”能力了,那又跟处理“速度”有啥关系呢?

确实像你说的,对于客户端来说客户端都是等。但“等”跟“等”是不一样的,就像银行取号机,就这一台,假设说这取号机你点了取号按钮以后 2s 才能吐出一张纸,你自己捋一捋 BIO/NIO 场景下有一百个人的话总共需要多少秒能全部拿到号?

省下的是取号本身的时间,至于你取完号你到柜台去办理业务了,柜台给你办多久你能离开银行了,跟取号机是 BIO/NIO 有啥关系呢?


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...