操作系统——线程

线程作为进程内的轻量级执行单元,允许多个任务并发执行。线程间共享内存地址空间和进程资源,具有独立的线程ID和控制块。多线程模型包括多对一、一对一和多对多,其中多对多模型能克服前两种的缺点。用户级线程和内核级线程各有优劣,线程管理可在用户态或核心态进行。


有时一个进程也需要同时完成多个任务,比如微信聊天的同时还要给对方发文件,这时就我们就在进程内部给各个功能划分出不同的线程,相当于轻量级的进程。引入线程后,线程就成为最小的CPU执行单元,在分配非CPU的系统资源时,我们才用到进程。

线程的特点

多核CPU计算机,进程内部的各个线程可以占用不同的CPU。
共享内存地址空间,线程通信无需系统干预。
共享进程的资源。
每个线程都有线程ID、线程控制块(TCB)。
几乎不拥有系统资源。
操作系统中,线程又分为用户级和内核级线程。用户级线程(ULT,User-Level Thread)就是用户看到的进程内部的线程,线程管理工作都由应用程序在用户态下进行,不需要系统干预。内核级线程(KLT,Kernel-Level Thread)就是系统看到的进程,线程管理工作都由操作系统内核在核心态下进行。

多线程模型

多对一:多个用户级线程映射一个内核级线程。一旦一个线程阻塞后,其他线程就使用不了内核级进程。
一对一:一个用户级线程映射一个内核级线程。有时一个用户级线程可能需要多个内核级线程,这时就需要CPU切换到核心态,成本较高。
多对多:n个线程映射m个线程(m<=n),克服以上模型的缺点。

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值