简单地说,在windows中看到的后缀为exe的文件都是程序。程序是静态地,只是文件。

当双击运行程序时,这个exe文件就会被操作系统加载,得到一个进程。进程是动态地。

操作系统会给进程分配资源,包括CPU、内存、IO等等。

进程中可以容纳多个线程。进程就像是一个容器。

线程之间会竞争资源,也有相互合作。

使用多线程而不是多进程进行并发程序的设计,是因为线程间的切换和调度的成本远远低于进程。