进程与线程(补充)

进程是程序的执行实例,资源分配的基本单位,而线程是CPU调度的基本单位,两者在起源、概念、内存共享、资源拥有及开销上存在显著差异。线程相比进程创建和切换更快,且在同一进程内更容易实现资源共享和通信。
摘要由CSDN通过智能技术生成

什么是进程

 

宏观来讲:

操作系统是包含多个进程的容器,而每个进程又都是容纳多个线程的容器。

 

Oracle文档的官方定义

进程:使用fork(2)系统调用创建的UNIX环境(例如文件描述符,用户ID等),它被设置为运行程序。

线程:在进程上下文中执行的一系列指令

 

进程(Process),指的是程序的一次执行。在用户下达运行程序的命令后,就会产生进程。

 

Java把一个类new出来,这是实例化的过程,进程就相当于代码的实例化,每一次的运行,进程都是不完全一样的,就像实例与实例之间不完全一样。

 

总结:进程是程序的真正运行实例,是资源分配的基本单位。

 

什么是线程

定义:线程是CPU的基本调度单位,每个线程执行的都是进程代码的某个片段

 

进程和线程的六点不同

1.起源不同

先有进程,后有线程。处理器的速度往往比外设要快,为了提高CPU的利用率,提高程序的执行效率,诞生了线程。

2.概念不同

进程是有独立功能的一个程序运行起来的活动、实例,是系统分配资源和调度的单位

线程是CPU的调度单位

3.内存共享方式不同

对于进程而言,不同的进程都会被操作系统分配到一定的内存,不同进程之间的资源通常是不共享的。进程间通讯需要使用进程间通信(IPC)

线程与线程之间内存共享容易,因为服务于同一个进程,要想服务的好,需要合作,所以两个线程之间通讯很容易,可以直接访问共享的内存,不需要额外的处理。

4.拥有的资源不同

线程是进程的一部分,拥有的资源一定少于进程。但是线程拥有一些独有的内容

1)进程代码段(重点)

2)进程的共有数据(利用这些共享的数据,线程很容易的实现相互的通讯)

3)进程打开的文件描述符

4)信号的处理器

5)进程的当前目录

6)进程用户ID与进程组ID

线程之间独有的内容

1、线程ID

2、寄存器组的值

3、线程的堆栈(重点)

4、错误返回码

5、线程的信号屏蔽码

5.进程和线程数量不同

进程一个,线程可以有多个。一个线程至少拥有一个线程,否则没有办法执行

6. 开销不同

1)线程的创建、终止时间比进程短

2)同一进程内的线程切换时间比进程切换短

3)同一进程的各个线程间共享内存和文件资源,可以不通过内核进行通信

相似点:生命周期

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值