嵌入式linux系统中线程的控制与实现

       本章将分为两大部分进行讲解,前半部分将引出线程的使用场景及基本概念,通过示例代码来说明一个线程创建到退出到回收的基本流程。后半部分则会通过示例代码来说明如果控制好线程,从临界资源访问与线程的执行顺序控制上引出互斥锁、信号量的概念与使用方法。

5.1 线程的使用  

5.1.1 为什么要使用多线程  

在编写代码时,是否会遇到以下的场景会感觉到难以下手?

场景一:写程序在拷贝文件时,需要一边去拷贝文件,一边去向用户展示拷贝文件的进度时,传统做法是通过每次拷贝完成结束后去更新变量,再将变量转化为进度显示出来。其中经历了拷贝->计算->显示->拷贝->计算->显示...直至拷贝结束。这样的程序架构及其的低效,必须在单次拷贝结束后才可以刷新当前拷贝进度,若可以将进程分支,一支单独的解决拷贝问题,一支单独的解决计算刷新问题,则程序效率会提升很多。

场景二:用阻塞方式去读取数据,实时需要发送数据的时候。例如在进行串口数据传输或者网络数据传输的时候,我们往往需要双向通信,当设置读取数据为阻塞模式时候,传统的单线程只能等到数据接收来临后才能冲过阻塞,再根据逻辑进行发送。当我们要实现随时发送、随时接收时,无法满足我们的业务需求。若可以将进程分支,一支单纯的处理接收数据逻辑,一支单纯的解决发送数据逻辑,就可以完美的实现功能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

嵌入式开发星球

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

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

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

打赏作者

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

抵扣说明:

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

余额充值