一个应用程序可以有多个进程, 一个进程可以包含多个线程。

两者的区别:

一句话来说就是这两者根本就不是同一层级的概念 所以全部都是区别。

但是,两者存在下列区别:

首先是在系统开销上,进程要比线程大。因为在创建或撤消进程时,系统都要为之分配和回收资源,导致系统的开销明显大于创建或撤消线程时的开销。

第二点是在资源管理方面的不同,进程有独立的地址空间 因此一个进程崩溃不会对其他进程产生影响。而线程只是一个进程中的不同执行路径,而线程没有独立的地址空间,一个线程崩溃那么所对应的进程也会崩溃。所以多进程的程序比多线程的程序要健壮

进程之间如何通信?

是父子进程关系的话可以采用管道通讯。如果没有亲缘关系的进程之间可以通过命名管道通信。或者可以用信号量进行通信。信号量就是一个计数器 用来控制多个进程对一个资源进行访问。还可以用共享内存进行通信。

线程之间如何通信?

有三种通信机制,锁机制(互斥锁,读写锁),信号机制和信号量机制