一个进程在运行时要对其分配内存,需要维护它的代码段,数据段,堆栈和参数等,而线程则会共享这些东西,且线程不占用太多资源,是一种节俭的多任务操作方式;
线程的优点1:省内存,共享数据。且启动一个线程的时间远远小于进程,当然线程彼此间切换的时间也小于进程,一个进程的开销近乎是线程的30倍左右。
线程的优点2:进程间的通信方式很不方便,比如管道,共享内存,信号量,相比于这些通信方式,进程可以更高效和节省CPU,线程因为是共享内存,当数据改变时可以通过快速读取内存而不需要进行复杂的操作。当然数据共享会带来一些问题,这里我们可以通过改变条件变量或者互斥锁来进行解决。