线程

线程

线程的概念

线程 = 执行流程 + 控制平台
线程是进程的一条执行路径
创建线程时,操作系统不为线程分配独立的资源(除了必要的数据支持),线程仍然使用所在进程的资源平台。
在这里插入图片描述


线程和进程的区别

进程是资源分配的最小单位,线程是CPU调度的最小单位


多线程处理的系统

多线程系统的特征

线程必须在一个进程中;
进程是资源分配单位,线程是调度单位;
一个进程中的所有线程共享资源。

多线程带来的好处:

1、多线程方便进行数据的共享和交流。
2、线程切换代价小。
3、提高了CPU的性能。


线程的状态

执行状态,表示线程已获得处理机而正在进行;
就绪状态,指线程已具备了各种执行条件,只须再获得CPU便可立即执行;
阻塞状态,指线程在执行中因某事件受阻而处于暂停状态。

在这里插入图片描述


线程控制块 TCP

1、线程标识符,为每个线程赋予一个唯一的线程标识符;
2、一组寄存器,包括程序计数器PC、状态寄存器和通用寄存器的内容;
3、线程运行状态,用于描述线程正处于何种运行状态;
4、优先级,描述线程执行的优先程度;
5、线程专业存储区,用于线程切换时存放现场保护信息,和与该线程相关的统计信息等;
6、信号屏蔽,即对某些信号加以屏蔽;
7、堆栈指针,在线程运行时,经常会进行过程调用,而过程的调用通常会出现多重嵌套的情况,这样,就必须将每次过程调用中所使用的局部变量以及返回地址保存起来。


用户级线程

在这里插入图片描述

用户线程的优点

可以在不支持线程的操作系统中实现。
线程管理的代价小。
允许每个进程定制自己的调度算法,线程管理比较灵活。
线程的调度不需要内核直接参与,控制简单。

用户线程的缺点

线程发生I/O或页面故障引起的阻塞时,由于内核不知道有多线程的存在,会阻塞该线程所对应的进程中所有线程。
一个单独的进程内部,没有时钟中断,不能用转轮调度的方式调度线程。
资源调度按照进程进行,多个处理机下,同一个进程中的线程只能在同一个处理机下分时复用,因此对于多线程并不能被多核系统加速。


内核级线程

在这里插入图片描述

内核线程的优点

多处理器系统中,内核能够并行执行同一进程内的多个线程。
如果进程中的一个线程被阻塞,能够切换同一进程内的其他线程继续执行。
当一个线程阻塞时,内核根据选择可以运行另一个进程的线程。

内核线程的缺点

所有线程销毁创建切换都以系统调用的形式实现,代价较大。

在这里插入图片描述


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值