线程
一个人,他有三个思想。第一个思想是做饭,第二个思想是烧水,第三个思想是洗衣服。这三个思想就是三个线程。
一个人不能同时干三件事。这三个线程具有竞争性,谁赢了这个人就先做这件事。
比如做饭这个线程赢了,这个人就先做饭,做完饭后洗衣服这个线程赢了,这个人接着就洗衣服。。。
进程
有10个人,每个人都能干一件事,一个人工作就叫一个进程。10个人同时工作就叫10个进程。电脑内核有几核就可以最大开几个进程。
因此,一个进程可以有多个线程,一个进程也可以有多个协程。
协程
一个人,他有三个思想。第一个思想是做饭,第二个思想是烧水,第三个思想是洗衣服。这三个思想就是三个协程。
同样他也不能同时干三件事。协程与线程的区别就是这三个协程没有竞争性。这个人在做事之前协程就已经安排好了先做某件事再做某件事。
协程比线程好。
进程池
假如一个池子里可以有8个进程同时工作。一共有100个进程。进程池有一个while死循环,用来检测池子里的进程的状态码是否是完成的状态,如果是完成的状态,那么就把完成的进程移出池子,然后再把新的进程移进来,使得池子里一直保持8个状态为工作中的进程。开始工作时,前8个进程进入进程池工作,当某个进程完成后,它的状态码会变为完成。当死循环检测到这个进程的状态是完成的时候,池子就会移出这个进程,然后让新的进程进来工作。这就是进程池的工作原理。