进程与线程

最近学习了进程与线程,想在博客上总结一下,有很大概率会有错误或者缺漏,如果有人发现还望指正,本人之后会做修改,多谢。

1.定义

1.1:进程

进程(Process)是操作系统分配资源的基本单位,是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。

1.2:线程

线程(Thread)是操作系统能够进行运算调度的最小单位,它被包含在进程中,是进程实际运作的单位。

2.比喻

当一个可执行文件(程序)运行起来的时候就相当于开启了一个进程。

当一个进程开启时,计算机会分配一定的资源给该进程,而该进程会发布各种任务,这些任务由线程来完成,如果总程序的目的是运营餐厅,那么进程就相当于老板与餐厅本身(发布指令,提供资源),线程就相当于餐厅里的厨师和服务员等人(具体操作数据)。一个餐厅可以有多个员工(多线程),但员工数量也不能太多,不然会影响餐厅运营效率或者提高成本(线程不是越多越好)。

其实,当你打开一个应用程序的时候,就相当于开启了一个进程。举个栗子,我现在打开了网易云音乐,并播放了一曲音乐,这时就开启了一个线程;而我一边听音乐一边与上面的朋友聊天,这就又需要一个进程。如果只有一个进程的话,那么我就不能同时干两件事了。

3.区别

3.1:从属关系不同

线程属于进程,线程就相当于车间的工人,工人只是为车间服务的。

3.2:描述侧重点不同

进程是操作系统进行资源分配的基本单位,而线程是操作系统进行资源调度的基本单位,就相当于,进程是分配场地与任务的基本单位,而线程是干活的基本单位。

3.3共享资源不同

多个进程间不能共享资源,每个进程有自己的堆、栈、虚存空间(页表)、文件描述符
等信息,而线程可以共享进程资源文件(堆和方法区)。就相当于一个员工不可能即在餐厅A工作又在餐厅B工作,不同的餐厅之间是相互独立的,但是餐厅内部的员工可以相互协作,互相帮助。

3.4上下文切换速度不同

线程上下文切换速度很快(上下文切换指的是从一个线程切换到另一个线程),
而进程的上下文切换的速度比较慢。想要改变一个员工的状态自然比改变一个公司的状态要来的容易。

3.5操纵者不同

⼀般情况下进程的操纵者是操作系统,而线程的操纵者是编程人员
 

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值