1. Process的一些特点:
(1) 进程是一个运行程序的实例,是一个私有空间,与相同机器上的其他进程来说,是彼此隔离的。
(2) 进程运行在一个抽象的virtual computer上,其运行时,仿佛其拥有整台计算机的资源。
(3) 多进程之间不共享内存,进程与进程之间通过消息传递进行协作。
(4) 一般来说,进程==程序==应用,但一个应用中可能包含多个进程。
2. Thread的一些特点:
(1) 相对于进程而言,进程表示一台虚拟Computer,而线程代表一个虚拟CPU(Virtual processor),
在某些种情况来说,线程可以说是轻量级的进程(lightweight process)。
(2) 线程之间共享相同的程序,共享相同的资源(内存,打开的文件等),线程存在于进程之中,
“threads exist within a process"。
(3) 线程之间共享所在进程中的所有内存,而且需要特别的努力来获得线程私有的内存空间。
(4) 可以通过创建消息队列(queue)在线程之间进行消息传递。
3. 总结:二者之间的对比。
4. 图解线程与进程的关系。
(1) 对于应用程序(application)而言,他们之间关系如图所示:
(2) 单线程和多线程的区别,如下图所示。