线程间通讯

优质
小牛编辑
133浏览
2023-12-01

线程间通讯接口

模块

 信号量
 信号量接口
 
 互斥量
 互斥量接口
 
 事件
 事件接口
 
 邮箱
 邮箱接口
 
 消息队列
 消息队列接口
 
 信号
 信号接口
 

结构体

struct  rt_ipc_object
 IPC基类控制块 更多...
 

宏定义

#define RT_IPC_FLAG_FIFO   0x00
 先进先出模式
 
#define RT_IPC_FLAG_PRIO   0x01
 优先级模式
 
#define RT_IPC_CMD_UNKNOWN   0x00
 未知的 IPC 命令
 
#define RT_IPC_CMD_RESET   0x01
 复位 IPC 对象命令
 
#define RT_WAITING_FOREVER   -1
 永远阻塞直到获得资源
 
#define RT_WAITING_NO   0
 无阻塞
 

详细描述

线程间通讯接口

RT-Thread操作系统支持如下所示的线程间同步与通信的方式:

  • 信号量是一种轻型的用于解决线程间同步问题的内核对象,线程可以获取或释放它,从而达到同步或互斥的目的。
  • 互斥量又叫相互排斥的信号量,是一种特殊的二值信号量,互斥量支持递归访问且能防止线程优先级翻转。
  • 一个事件集可以包含多个事件,利用事件集可以完成一对多,多对多的线程间同步。
  • 邮箱一次可以传递一个4字节大小的邮件,并且邮箱具备一定的存储功能,能够缓存一定数量的邮件数
  • 消息队列能够接收来自线程或中断服务例程中不固定长度的消息,并把消息缓存在自己的内存空间中。
  • 信号用来通知线程发生了异步事件,用做线程之间的异常通知、应急处理。