zoukankan      html  css  js  c++  java
  • 进程、线程、协程、进程池

    线程

    一个人,他有三个思想。第一个思想是做饭,第二个思想是烧水,第三个思想是洗衣服。这三个思想就是三个线程。

    一个人不能同时干三件事。这三个线程具有竞争性,谁赢了这个人就先做这件事。

    比如做饭这个线程赢了,这个人就先做饭,做完饭后洗衣服这个线程赢了,这个人接着就洗衣服。。。

    进程

    有10个人,每个人都能干一件事,一个人工作就叫一个进程。10个人同时工作就叫10个进程。电脑内核有几核就可以最大开几个进程。

    因此,一个进程可以有多个线程,一个进程也可以有多个协程。

    协程

    一个人,他有三个思想。第一个思想是做饭,第二个思想是烧水,第三个思想是洗衣服。这三个思想就是三个协程。

    同样他也不能同时干三件事。协程与线程的区别就是这三个协程没有竞争性。这个人在做事之前协程就已经安排好了先做某件事再做某件事。

    协程比线程好。

    进程池

    假如一个池子里可以有8个进程同时工作。一共有100个进程。进程池有一个while死循环,用来检测池子里的进程的状态码是否是完成的状态,如果是完成的状态,那么就把完成的进程移出池子,然后再把新的进程移进来,使得池子里一直保持8个状态为工作中的进程。开始工作时,前8个进程进入进程池工作,当某个进程完成后,它的状态码会变为完成。当死循环检测到这个进程的状态是完成的时候,池子就会移出这个进程,然后让新的进程进来工作。这就是进程池的工作原理。

  • 相关阅读:
    开源项目:MMTweenAnimation
    URI跳转方式地图导航的代码实践
    处理i18n国际电话区号的代码实践
    图片变形的抗锯齿处理方法
    CocoaPods版本升级
    JSPatch 部署安全策略
    JSPatch实现原理详解<二>
    JSPatch实现原理详解
    JSPatch – 动态更新iOS APP
    iOS富文本组件的实现—DTCoreText源码解析 渲染篇
  • 原文地址:https://www.cnblogs.com/weifeng1998/p/13264570.html
Copyright © 2011-2022 走看看