OH操作系统基础:Thread多线程
Thread是一种基本的系统资源竞争单元,它可以独立于其他线程运行,使用或等待CPU、使用内存空间等系统资源。OH操作系统基础提供了多线程支持,实现线程间的切换,帮助用户管理业务程序流程。
Thread的基本概念:
1. 线程状态:就绪、运行、阻塞、退出四种状态
2. 线程创建:使用osThreadNew API创建线程
3. 线程管理:HarmonyOS内核管理线程靠任务池和就绪队列,执行靠调度算法
Thread的状态:
1. 就绪(Ready):线程在就绪队列中,只等待CPU
2. 运行(Running):线程正在执行
3. 阻塞(Blocked):线程不在就绪队列中
4. 退出态(Dead):线程运行结束,等待系统回收资源
Thread状态迁移:
1. 就绪态→运行态:任务创建后进入就绪态,发生任务切换时,就绪队列中最高优先级的任务被执行
2. 运行态→阻塞态:正在运行的任务发生阻塞时,将该任务插入到对应的阻塞队列中
3. 阻塞态→就绪态:阻塞的任务被恢复后,加入就绪队列
4. 运行态→就绪态:有更高优先级任务创建或者恢复后,发生任务调度
5. 运行态→退出态:运行中的任务运行结束,任务状态由运行态变为退出态
6. 阻塞态→退出态:阻塞的任务调用删除接口,任务状态由阻塞态变为退出态
Thread调度算法:
1. 抢占式调度机制
2. SCHED_RR和SCHED_FIFO调度策略
Thread头文件:
//third_party/cmsis/CMSIS/RTOS2/Include/cmsis_os2.h
Thread创建-API介绍:
1. osThreadNew:创建线程
2. osThreadTerminate:删除某个线程
CMSIS-RTOS2是Arm® Cortex®-M 处理器的通用的RTOS接口,为需要RTOS功能的软件组件提供了标准化的API。OH操作系统基础使用了CMSIS-RTOS2接口,提供了多线程支持。