一对多线程间通信的问题

发布于 2020-11-17 15:56:38

信号量和邮箱,好像都是获取一次后就没了吧。

如果需要:
按键线程,进行开机,显示屏线程需要显示开机内容,WIFI线程需要联网;
按键线程,进行待机,显示屏线程需要显示关闭,WIFI线程需要休眠wifi;
按键线程,进行关机,显示屏线程需要显示关闭,WIFI线程需要关闭wifi;

如果用信号量,是不是需要创建:
to显示线程——开机信号量;towifi线程——开机信号量;
to显示线程——待机信号量;towifi线程——待机信号量;
to显示线程——关机信号量;towifi线程——关机信号量;

如果用邮箱,是不是需要创建:
to显示线程——邮箱:通过邮件内容不同表示不同状态;
towifi线程——邮箱:通过邮件内容不同表示不同状态;

好像挺麻烦的,有没有像全局变量一样的东西,send一次,所有rev的线程都可以获取到,不会获取一次就没有了呢?
用事件集吗?

查看更多

关注者
0
被浏览
164
2 个回答
mysterywolf
mysterywolf 2020-11-18

rtt没有支持以广播形式释放信号量,但是我实现了 参见:https://github.com/mysterywolf/RT-Thread-wrapper-of-uCOS-III/blob/master/uCOS-III/os_rtwrap.c#L181 但是仍然建议使用事件标志组来实现该功能

yangjie
yangjie 2020-11-17

一对多同步用事件,一个事件有32bit,使用不同的bit和不同对的线程进行同步

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友

手机
浏览

扫码手机浏览