多进程多线程

在这里插入图片描述
并发编程有两种模型一种是多进程,一种是多线程
对于多进程来说,每个进程进程只有一个线程,进程间是可以相互通信的,进程中通信的方式有很多种,比如文件,消息队列,管道,
第二种并发模型是多线程,对于多线程而言,一个进程可有两个或多个线程,线程之间通过共享内存的方式进行通信,那么对于这两个并发模型而言,各自的优缺点:
多线程:

  1. 相对于一个进程而言,多线程的启动速度快,因为操作系统需要分配一系列的内部资源去管理进程,线程通常被认为是更轻量级的,
  2. 开销更低,进程的开销更大,(操作系统需要对进程提供很多的保护,而且通过共享内存的方式比通过文件管道或者是消息队列的速度要快得多,总而言之多线程要比多进程的性能优越)
  3. 但是多线程也有它的缺点,它的缺点就是很难管理,有很多线程的特定问题需要被小心的处理(死锁等)
  4. 另一个问题就是他不能在分布式的系统下运行,进程则没有这个问题,在实际的项目中我们经常会看到多进程和多线程混合使用

对与一个程序来说,一些进程是单线程的,一些进程是多线程的,主要讨论多线程

引用