多线程(1)--线程概念

一、线程概念

举个栗子:
有个零件加工工厂, 工厂中有一个或多个工人, 工人是干活的; 工厂是集体设备资源的载体.
进程就是工厂; 线程就是工人;
进程是系统进行资源分配的基本单元;线程是系统进行调度运行的基本单元;

线程就是进程中的一条执行流程,Linux下线程执行流程是通过pcb实现的,而一个进程中可以有多个线程(pcb),并且这些pcb共享了进程中的大部分资源,相较于传统pcb较为轻量化,因此Linux下的线程也被称作为轻量级进程。

在这里插入图片描述


在最早学习进程的时候,认为进程就是pcb是一个程序运行的动态描述,通过这个描述符操作系统实现程序运行调度以及管理。
但是在学习的线程的时候,才知道Linux下的pcb实际上是一个线程,是进程中的一条执行流程,一个进程中可以有多个pcb,这些pcb共享进程中的大部分资源,因此也被称作轻量级进程。
进程是资源分配的基本单元;线程是CPU调度运行的基本单元。

二、线程间的独有与共享

独有:标识符,栈,寄存器,信号屏蔽字,errno 共享:虚拟地址空间,IO信息,信号处理方式,工作路径 多进程与多线程进行多任务处理的优缺点:
 线程优点:
  1.线程间通信更加灵活(包括进程间通信方式在内还可以使用全变量或者函数传参来实现)
  2.线程的创建于销毁成本更低
  3.线程间的切换调度成本更低
 进程优点:稳定,健壮性高---主程序安全性要求高的场景-shell、服务器
多任务处理中,并不是进程或者线程越多越好。执行流太多,反而会增加切换调度的成本。
IO密集型程序:程序中大量进行IO操作
CPU密集型程序:程序中大量进行数据运算操作
  • 8
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李憨憨_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值