线程间通讯
优质
小牛编辑
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字节大小的邮件,并且邮箱具备一定的存储功能,能够缓存一定数量的邮件数
- 消息队列能够接收来自线程或中断服务例程中不固定长度的消息,并把消息缓存在自己的内存空间中。
- 信号用来通知线程发生了异步事件,用做线程之间的异常通知、应急处理。