【Linux系统编程】线程基础

     线程的概念

     线程是进程内部的一条执行序列,或者执行流。每个进程至少有一条线程,称之为主线程。从代码的角度看,就是main函数的函数体。在主线程中可以通过线程库创建其他函数线程。在同一个进程中的线程都是并发运行的,并且线程的执行顺序由系统决定。

     主线程和函数线程没有本质的区别,只是主线程是进程执行时的第一条线程。主线程默认结束,结束的是整个进程。

     线程的实现方式

     线程的实现方式有三种:用户级、内核级、混合模式。

     用户级线程:线程的创建、调度、销毁都在用户空间完成,内核只会识别其为一个进程。同时,用户态维护了一个线程表来管理线程。

     优点:1.灵活性强,操作系统不知道线程的存在,在任何平台上都可以运行;2.线程的切换在用户空间完成,不需要陷入内核,速度较快;3.不用修改操作系统,内核实现简单。

     缺点:1.编程复杂,用户必须自己管理线程,包括线程调度;2.如果一个线程阻塞,整个进程都会阻塞;3.不能使用对称多处理器。

     内核级线程:线程的创建、管理、销毁由操作系统内核完成。

     优点:1.内核线程使得用户编程简单;2.一条线程阻塞,操作系统可以立马切换到另一条线程,整个进程不会阻塞。

     缺点:1.内核实现复杂,需要支持多线程;2.线程切换效率低,每次切换必须陷入内核。

     混合线程:线程一部分由用户创建,一部分由内核创建,是一个多对多的关系,结合了用户级和内核级的优点。

 

     进程和线程的区别

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

     2.进程是线程的集合。进程中包含数据、资源,一个进程中的所有线程共享进程的数据、资源。

     3.线程创建、管理代价小。线程调度、切换效率较高。

 

     参考资料:《从哲学层次上看操作系统》 第5章 第3节

 

 

 

weixin151云匹面粉直供微信小程序+springboot后端毕业源码案例设计 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值