进程和线程的区别
进程 | 线程 |
---|---|
进程是资源分配的最小单位 | 线程是程序执行(CPU执行和调度)的最小单位 |
进程有自己的地址空间,每启动一个进程系统会给他分配地址空间 | 线程共享进程的数据使用相同的地址空间,因此线程切换比进程切换代价小的多,同时创建一个线程代价也小得多 |
进程之间通信要以通信的方式进行 | 线程之间通信更方便,同一进程下的线程共享全局变量、静态变量等数据 ,线程有自己的堆栈和局部变量空间 |
多进程程序更健壮,因为每个进程都有自己的资源空间 | 多线程只要有一个线程死掉其他都死掉了 |