当前位置: 首页 > news >正文

RT-Thread 线程管理(学习二)

线程相关操作

线程相关的操作包括:创建/初始化、启动、运行、删除/脱离。

动态线程与静态线程的区别:动态线程是系统自动从动态内存堆上分配栈空间与线程句柄(初始化heap之后才能使用create创建动态线程),静态线程是由用户分配栈空间与线程句柄。

在这里插入图片描述
线程任务执行完毕,系统会自动回收资源,无需调用删除函数。

获得当前线程
在程序的运行过程中,相同的一段代码可能会被多个线程执行,在执行的时候可以通过rt_thread_self();获得当前执行的线程句柄。

让出处理器资源,让出处理器后,当前线程仍然处于就绪态。
rt_thread_yield()

线程睡眠
rt_thread_sleep();
rt_thread_delay();

线程控制函数,可改变优先级、启动线程、删除线程、绑定CPU(多核)
rt_thread_control();

设置和删除idle线程hook函数
rt_thread_sethook();
rt_thread_delhook();

空闲线程是一个线程状态永远为就绪态的线程,因此设置的钩子函数必须保证空闲线程在任何时刻都不会处于挂起状态,例如rt_thread_delay(),rt_sem_take()等可能会导致线程挂起的函数都不能使用。

设置调度器hook函数,在系统线程切换时,这个钩子函数将被调用
rt_scheduler_sethook();

http://www.lryc.cn/news/139282.html

相关文章:

  • ESP32应用教程(1)— VL53L3CX距离传感器
  • Redis从基础到进阶篇(一)
  • postgresql的基本使用
  • ABC 258 G Triangle(bitset 优化)
  • 使用StreamLold写入 Starrocks报错:Caused by org
  • WX1860- ngbe-1.2.5 xdp程序在路由模式下,使用iperf工具测试数据包不转发,用jmeter可以
  • PHPStudy 安装tp8 php8.2.9 安装XDbug、redis扩展
  • 结构体指针和结构体数组指针
  • libdrm全解析二十 —— 源码全解析(17)
  • 基于docker搭建owncloud Harbor 构建镜像
  • 往Buildroot中增加Qt项目
  • C#-Tolewer和ToUpper的使用
  • RabbitMQ集群搭建和测试总结_亲测
  • SQLSTATE[IMSSP]: The active result for the query contains no fields.
  • 在Flutter应用内部实现分屏功能
  • Docker常用操作命令(二)
  • vue3 tailwindcss的使用
  • redis 基础篇(redis 理解)
  • C++系列-函数重载
  • leetcode-23.合并k个升序链表-day17
  • Linux scp命令
  • vue 简单实验 v-bind 变量与html属性绑定
  • 114.(cesium篇)cesium去掉时间轴并用按钮控制运动
  • 2023年清洁能源与智能电网国际会议(CCESG 2023)
  • RISC-V中国峰会 | 256核服务器高调亮相,谁与争锋?
  • 树套树小结
  • android 解决sdk代码冲突
  • C++逆天合集
  • stm32之15.超声波与灯光功能一起实现(进阶)
  • 美创科技荣获“2023年网络安全优秀创新成果大赛—杭州分站赛”两项优胜奖