本章节以小故事开始介绍线程的发展及理论:IO(Input Output)
CPU:快递老板
线程:快递员
任务:快递送达
老板让快递员送货物,快递员只有把东西送到人手上后,然后回到老板办公室,老板来发派下一单
但是因为别人可能不在家,快递员就一直在门口守着,也就是说这个快递员被Block住了
但是老板算了一笔账,一个快递员一天给他挣10,10个快递员就可以挣100,所以继续招 10个快递员
老板招了10个快递员,但是每个快递员都是等送到别人手上后,在继续回来,但是区别是 现在人数多了
所以叫做 MBIO multi Block IO
尤其是有些人出差 旅游了,快递员在门口等了十天半个月,一账算下来不挣钱,然后想了办法,如果对方不在,就不要等了,赶快回来送下一趟快递,好,这时候就是 NIO的雏形 Non-Block IO
3.1 本着累死快递员的政策,只要对方不在家,就把他快递放到最后,快点回来送第二单,不在家,就继续送下一单。但是这样,每次携带快递,快递员最先受不了,生病还得付工资。
3.2 所以就想着单独请一个人只负责询问人在不在家,问到了,就立马让快递员送货,并且这个人不携带任何快递,天天跑问题也不大,这就是 NIO 的第二个阶段,多路复用。
这样的话其实也浪费快递员,因为每次都只能送一个快递,干嘛不让 收件人 自己来取货?说干就干
快递老板,直接把某一块的快递全部打包好,快递小哥只需要送一次,然后通过短信通知收件人,收件人收到短信后取快递,通过扫描二维码签收快递通知老板,老板收到短信后完成订单,收到钱
所以老板只负责让快递员把快递送到驿站,然后通知收件人取货,至于收件人什么时候取货,则相互不知,但是收件人取到货后,得通过二维码来通知老板,各自做各自的事情,完全不用谁等谁。
只不过中间的种种可能不是那么容易操作的,暂时就不要考虑了。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。