一吱大懒虫的博客

程序改变你我的世界

进程与线程 阻塞与非阻塞

进程:CPU执行任务的模块。线程:模块中的最小单元。

cpu比作我们每个人,到饭点吃饭了。可以点很多菜(cpu中的进程):宫保鸡丁,鱼香肉丝,酸辣土豆丝。每样菜具体包含了哪些内容(cpu每个进程中的线程):宫保鸡丁(详情:黄瓜、胡萝卜、鸡肉、花生米)。而详情构成了宫保鸡丁这道菜,吃了以后不饿。就可以干活了,cpu中的进程里的线程也是同理。当线程完成自己的内容将结果返回给进程,进程返回给cpu的时候。cpu就能处理日常需求。

  • 单进程单线程:一盘炒苦瓜,里面只有苦瓜。
  • 单进程多线程:一盘宫保鸡丁,里面有黄瓜、胡萝卜、鸡肉、花生米


阻塞与非阻塞

我要看足球比赛,但是妈妈叫我烧水,电视机在客厅,烧水要在厨房。家里有2个水壶,一个是普通的水壶,另一个是水开了会叫的那种水壶。我可以:

  1. 用普通的水壶烧,人在边上看着,水开了再去看球。(同步,阻塞)这个是常规做法,但是我看球不爽了。
  2. 用普通水壶烧,人去看球,隔几分钟去厨房看看。(同步,非阻塞)这个又大问题,万一在我离开的几分钟水开了,我就麻烦了。
  3. 用会叫的水壶,人在边上看着。(异步,阻塞)这个没有问题,但是我太傻了。
  4. 用会叫的水壶,人去看球,听见水壶叫了再去看。(异步,非阻塞)这个应该是最好的。

等着看球的我:阻塞

看着电视的我:非阻塞

普通水壶:同步

会叫的水壶:异步

所以,异步往往配合非阻塞,才能发挥出威力。

阅读更多
上一篇python3 1.7.3 装饰器(decorator)
下一篇mysql安装及配置
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭