进程和线程的区别和联系

目录

  • 线程
    • 概念
    • 存在意义
    • 进程和线程的区别和联系

线程

概念

进程就是一个"执行流",按照某种顺序执行自己的代码。

存在意义

如今各种操作系统均能实现多进程同时执行,也就是支持并发编程。一个进程的创建需要消耗计算机资源,销毁意味着要释放资源。当很多个进程同时执行时,计算机资源的消耗太大,执行效率较低
如何才能提高并发编程的效率?有两种方式:

  1. 进程池:像String常量池、数据库中的连接池,使用进程池来存储多个进程,当进程销毁时并不真的释放这个进程而是将进程存储到进程池中,这样再次使用该进程时直接从进程池中取就好。但进程池维护进程意味着在进程不使用的时候同样需要消耗不少的计算机资源
  2. 使用线程实现并发编程:线程存在于进程当中,一个进程中有很多个线程线程较进程而言更加轻量,创建、摧毁、调度一个线程要快于进程。之所以快,是因为多个线程是存在于一个进程当中的,共享一份资源,当在一个进程中创建多个线程时,只有第一个线程的创建需要分配资源,之后线程的创建直接共享该资源即可。进程和线程之间的关系就相当于工厂和工厂中的生产线。一个工厂中有多个生产线,生产线的创建、销毁的成本要低于一个工厂。当然一个进程中的线程并不是说越多越好,因为一个进程中的多个线程可能在消耗同一份资源,如果线程之间过多会出现忙等,反而不会提升并发编程的效率,一个进程中的线程的个数与硬件设备的等级有关

进程和线程的区别和联系

联系:

  1. 进程包含线程,一个进程中可以有一个或者多个线程。
  2. 进程和线程都是为了解决并发编程。但线程的效率要高于进程,因为多个线程可以共享一份资源,而进程和进程之间是独立的,进程的创建和销毁是一定需要消耗资源的。

区别:

  1. 进程是操作系统分配资源的最小单位,线程是操作系统调度的最小单位
  2. 进程具有独立性,进程A的崩溃不会影响到进程B的崩溃;在一个进程中的多个线程是共享一份资源的,一个线程的崩溃可能会影响到该进程中其他线程的崩溃,进而导致整个进程崩溃
  3. 进程间的通信需要在内核中进行,而线程因为共享一份资源可以直接进行通信

你可能感兴趣的:(进程和线程的区别)