什么是阻塞非阻塞,什么是同步异步?

洗衣机洗衣服例子

无论阻塞式IO还是非阻塞式IO,都是同步IO模型

同步阻塞:你把衣服都到洗衣机洗,然后看着洗衣机洗碗,洗好后再去晾衣服(你就干等,啥都不做,堵塞在那)
但你要的结果只是晾衣服,你等待的这个过程就是阻塞

同步非阻塞:你把衣服丢到洗衣机洗,然后可以去做其它事,比如玩游戏看电视之类的,但你要定时去卫生间看看洗衣机有没有洗完,洗完后再去晾衣服

异步阻塞:把衣服丢到洗衣机洗,然后看着洗衣机洗完,再去晾(先说一下,生活中你会这样么?所以说几乎没有这个情况,没这个说法,可以忽略)用异步就不会出现阻塞这种情况!

异步非阻塞:你把衣服丢到洗衣机,你可以去做其它事,洗衣机洗好后自动晾衣服,晾好后放个音乐提示你衣服晾好了

因为有了IO操作才会有阻塞,才会出现同步和异步。因为有大量IO操作,才会有高并发的设计,如果只是纯CPU运算,不涉及到CPU对外围IO设备的读写,那么就不存在高并发设计

那么对CPU而言,开一个线程计算和开100个线程计算,只会徒增CPU切换时间,当然这种情况下也不存在所谓的阻塞、非阻塞、同步和异步。所谓的高性能就是如何在处理大量IO的情况下,让CPU去干更多的正事

猜你喜欢

转载自blog.csdn.net/q736317048/article/details/113744594