前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >多线程理论入门

多线程理论入门

原创
作者头像
洪移潮
发布2024-12-10 21:39:04
发布2024-12-10 21:39:04
780
举报
文章被收录于专栏:C#从中级到高级

本章节以小故事开始介绍线程的发展及理论:IO(Input Output)

CPU:快递老板

线程:快递员

任务:快递送达

1. 原始的单线程,也就是 BIO Block IO

老板让快递员送货物,快递员只有把东西送到人手上后,然后回到老板办公室,老板来发派下一单

但是因为别人可能不在家,快递员就一直在门口守着,也就是说这个快递员被Block住了

但是老板算了一笔账,一个快递员一天给他挣10,10个快递员就可以挣100,所以继续招 10个快递员

2. 原始的多线程,也就是 MBIO

老板招了10个快递员,但是每个快递员都是等送到别人手上后,在继续回来,但是区别是 现在人数多了

所以叫做 MBIO multi Block IO

尤其是有些人出差 旅游了,快递员在门口等了十天半个月,一账算下来不挣钱,然后想了办法,如果对方不在,就不要等了,赶快回来送下一趟快递,好,这时候就是 NIO的雏形 Non-Block IO

3. 无需等待,快送快回: NIO的雏形 Non-Block IO

3.1 本着累死快递员的政策,只要对方不在家,就把他快递放到最后,快点回来送第二单,不在家,就继续送下一单。但是这样,每次携带快递,快递员最先受不了,生病还得付工资。

3.2 所以就想着单独请一个人只负责询问人在不在家,问到了,就立马让快递员送货,并且这个人不携带任何快递,天天跑问题也不大,这就是 NIO 的第二个阶段,多路复用。

这样的话其实也浪费快递员,因为每次都只能送一个快递,干嘛不让 收件人 自己来取货?说干就干

4. 快递驿站模式来了 AIO Asynchronous IO,

快递老板,直接把某一块的快递全部打包好,快递小哥只需要送一次,然后通过短信通知收件人,收件人收到短信后取快递,通过扫描二维码签收快递通知老板,老板收到短信后完成订单,收到钱

所以老板只负责让快递员把快递送到驿站,然后通知收件人取货,至于收件人什么时候取货,则相互不知,但是收件人取到货后,得通过二维码来通知老板,各自做各自的事情,完全不用谁等谁。

5.终极模式:老板当中间人,让收件人自己去源头取货,也就是 超市模式。

只不过中间的种种可能不是那么容易操作的,暂时就不要考虑了。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 原始的单线程,也就是 BIO Block IO
  • 2. 原始的多线程,也就是 MBIO
  • 3. 无需等待,快送快回: NIO的雏形 Non-Block IO
  • 4. 快递驿站模式来了 AIO Asynchronous IO,
  • 5.终极模式:老板当中间人,让收件人自己去源头取货,也就是 超市模式。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档