进程和线程 - 每天五分钟搞定Java面试

进程

特征

结构特征
通常的程序是不能并发执行的,为使程序(含数据)能并发执行,应为之分配一进程控制块。
程序段、相关的数据段和PCB构成进程实体

动态性
进程的实质是进程实体的一次执行过程
由创建而产生、由调度而执行、由撤销而消亡

并发性
多个进程实体同存于内存中,且能在一段时间内同时运行。
程序是不能并发执行的

独立性
进程实体是一个能独立运行、独立分配资源和独立接受调度的基本单位

异步性
进程实体按异步方式运行

定义

进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位

线程

进程的引入, 目的是为了使多个程序并发执行,以提高资源的利用率和系统的吞吐量。那线程的引入是为了什么呢?
引入线程,是为了减少程序在并发执行时所付出的时空开销,使操作系统具有更好的并发性。因为进程是资源的拥有者,所以在创建、撤销和切换进程的过程中,系统必须为之付出较多的时空开销。

属性

线程是轻量级进程,线程中的实体基本上不拥有系统资源,只是有一点必不可少的、能保证其独立运行的资源,比如,在每个线程中都应具有一个用于控制线程运行的线程控制块TCB,用于指示被执行指令序列的程序计数器,保留局部变量、少数状态参数和返回地址等的一组寄存器和堆栈。
线程是独立调度和分派的基本单位。
线程可并发执行。一个进程中的线程可以并发执行,不同进程中的线程也可以并发执行。
同一个进程中的线程共享进程资源。

比较

调度

线程是调度和分派的基本单位,进程是资源拥有的基本单位
在同一进程中,线程的切换不会引起进程的切换,但从一个进程中的线程切换到另一个进程中的线程时,将会引起进程的切换。

拥有资源

线程自己不拥有资源(也有一点必不可少的资源),但它可以访问其隶属进程的资源。一个进程的代码段、数据段及所拥有的系统资源,如已打开的文件、I/O设备等,可以供该进程中的所以线程共享。

系统开销

在创建和撤销进程时,系统都要为之创建和回收PCB,分配或回收资源,OS付出的开销明显大于线程创建或撤销时的开销。
在进程切换时,涉及到当前进程CPU环境的保存以及新被调度运行进程的CPU环境的设置,而线程的切换仅需保存和设置少量寄存器内容,不涉及存储器管理方面的操作,所以就切换代价而言,进程也是远高于线程的。此外,由于一个进程中的多个线程具有相同的地址空间,在同步和通信的实现方面线程也比进程容易。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值