进程和线程的区别

  • 进程是资源分配的最小单位,线程是程序执行的最小单位。
  • 进程拥有自己的独立地址空间,线程没有独立的地址空间,他使用相同的地址空间共享数据。
  • CPU 切换一个线程的开销比切换一个进程花销小
  • 创建一个线程比创建一个进程开销小
  • 线程占用的资源比进程占用资源小
  • 线程之间通信更方便,同一个进程下,线程共享全局变量
  • 多进程的程序更安全更健壮,一个进程死掉不会对另一个进程有影响。多线程不易维护,一个线程死掉,整个进程就死掉了。

定义

进程是一个程序的实例,由一个或多个线程组成。
线程是由 fork 操作来将一个程序生成一个或多个并发运行的任务。

联系

通常一个进程包括多个线程,一个线程只能属于一个进程。

本质区别

线程共享地址空间,进程拥有独立的地址空间。

系统开销

指的是操作系统对程序进行管理花费的空间和时间。