【Java 多线程】【线程和进程的区别】

目录

1、线程是什么?

2、线程为什么存在

3、 进程和线程的联系(重点)

4、 线程和进程的区别(重点)


1、线程是什么?

线程是指在进程内部运行的轻量级执行单元,操作系统进行任务调度的基本单位

一个线程就是一个 "执行流". 一个进程可以包含多个线程,多个线程之间 "同时" 执行着多份代码.

这些线程共享进程的资源(如内存、文件句柄等),但每个线程有自己的栈空间和程序计数器。不同的线程可以并发执行,从而提高程序的运行效率。

2、线程为什么存在

 进程的创建、销毁、调度 成本都很高,线程的出现比进程的创建、销毁、调度更快,成本也越低,这就是操作系统资源分配造成的

操作系统真正调度的是进程 而不是 线程

一个进程有多个线程;每个线程都是一个独立的执行流,多个线程之间是并发执行

原因:

  1. 一个进程中的多个线程之间,公用一份系统资源

  • 内存空间
  • 文件描述符表

   2. 只有在进程启动,创建第一个线程的时候,需要花费成本去申请系统资源

  • 一个进程(第一个线程)创建完毕,之后的线程创建就不必申请资源了,创建/销毁的效率就提高了

3、 进程和线程的联系(重点)

 进程:是正在执行中程序的实例,具有自己的地址空间、代码段、数据段、堆栈和进程控制块等系统资源,是操作系统分配资源的基本单位,进程可以包含多个线程,它们共享进程的资源

线程:是进程内部的一条执行路径是操作系统的系统资源调度的基本单位。一个进程可以包含多个线程,它们共享进程的空间和系统资源,但每个线程有自己的栈空间和程序计数器。线程之间可以并发执行,从而提高程序的运行效率 

进程和线程的关系:

  1. 进程可以包含多个线程,进程和线程之间是包含和被包含的关系;
  2. 线程是在进程的内部运行的,共享进程的资源,线程之间可以通过共享内存等机制来交换信息的协调资源
  3. 线程的创建、销毁和调度比进程快,因为线程共享进程资源,无需想进程一样重新创建和初始化
  4. 进程之间不会影响,相互隔离,但是一个线程挂了,会影响同一进程中的线程,进而造成所属进程的崩溃;

4、 线程和进程的区别(重点)

进程:操作系统分配资源的基本单位

线程:操作系统调度运行的基本单位

区别

进程

线程

定义

运行中的程序实例,有自己的地址空间和系统资源

在进程内部运行的轻量级执行单元,共享进程的地址空间和系统资源

调度

操作系统分配资源的基本单位

操作系统调度运行的基本单位

并发性

进程是独立的执行实体,相互之间不会影响到彼此的运行

线程在同一进程中运行,共享进程的资源,如内存和文件句柄等

消耗

创建、终止、切换进程的开销较大,需要分配和释放资源

创建、终止、切换线程的开销较小,因为线程共享进程的资源

安全性

进程之间相互独立,一个进程崩溃不会影响其他进程

线程共享进程资源,线程崩溃会影响同一进程中的线程,进而造成所属进程的崩溃;

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值