进程(Process)是操作系统分配资源的基本单位,⼀个进程拥有的资源有⾃⼰的堆、栈、虚存空间(⻚表)、⽂件描述符等信息。 从编程的⻆度来理解进程,可以把它看作是⼀个类或⼀个 PCB
(Process Control Block)进程控制块的结构体.
进程是操作系统分配资源的最小单位。
一个线程就是一个 "执行流". 每个线程之间都可以按照顺讯执行自己的代码. 多个线程之间 "同时" 执行着多份代码.
举个例子:
假设今天你家里来客人了, 然后决定做一桌子好吃的饭菜招待客人, 然后家里妈妈的厨艺最好, 所以让妈妈来做饭, 但是这个时候一个人肯定会忙不过来, 所以妈妈久找你和你爸来帮忙, 一个人洗菜切菜, 一个人炒菜, 一个人招待客人. 三个人分别负责一个事情,自此就有了三个执行流共同完成任务,但本质上你们都是为了招待好客人.
此时,我们就把这种情况称为多线程,将一个大任务分解成不同小任务,交给不同执行流就分别
执行. 其中你和你爸爸都是你妈妈叫来的,所以妈妈一般被称为主线程(Main Thread)。
首先: "并发编程" 成为 "刚需"
其次, 虽然多进程也能实现 并发编程, 但是线程比进程更轻量.
最后, 线程虽然比进程轻量, 但是人们还不满足, 于是又有了 "线程池"(ThreadPool) 和 "协程"
(Coroutine)