[技术问答] freertos线程问题

[复制链接]
1093|12
 楼主| koala889 发表于 2022-10-4 20:12 | 显示全部楼层 |阅读模式


freertos系统中同级的线程中,同时调同一个函数,会怎么办?

意思就是说1号线程调用一个A函数,函数还没有执行完,切到2号线程,又调用A函数,结果会怎么样?
软核硬核 发表于 2022-10-5 20:26 | 显示全部楼层
如果函数里面没有静态函数或者调用全局变量就没事。
软核硬核 发表于 2022-10-5 20:28 | 显示全部楼层
等于是调用了A1和A2两个独立的函数。
V853 发表于 2022-10-6 08:20 | 显示全部楼层
调用函数时会开辟一块栈空间执行函数内容,所以只要使用合理,不用太担心。
Undshing 发表于 2022-10-7 21:26 | 显示全部楼层
没有静态或者全局变量都行
littlelida 发表于 2022-10-8 20:46 | 显示全部楼层
这样的话,优先级和程序逻辑很重要~
tpgf 发表于 2022-11-4 11:35 | 显示全部楼层
如果实际应用中出现这个问题的话 那就只能按照先后顺序进行处理了
qcliu 发表于 2022-11-4 11:53 | 显示全部楼层
线程中的函数实体实在内存中,而函数中的局部变量则会一次被push到栈中.
drer 发表于 2022-11-4 12:08 | 显示全部楼层
需要互斥处理的,一般是函数中有全局变量,有动态申请的空间,有静态局部变量,有需要进程数据循环发送(进程传参数给线程)之类的操作需要进行互斥处理
coshi 发表于 2022-11-4 13:08 | 显示全部楼层
如果有操作的变量的话 大概率就会造成混乱
kxsi 发表于 2022-11-4 13:40 | 显示全部楼层
应该设定一个全局的标志位进行互斥或者说互锁操作
wiba 发表于 2022-11-4 14:01 | 显示全部楼层
设定一个标识量 一旦有函数调用 就给它置位 其他函数如果调用前会判定这个标识是否已经置位 这样就不会重复操作了
Stahan 发表于 2022-11-5 20:35 | 显示全部楼层
没有静态或者全局变量都行
您需要登录后才可以回帖 登录 | 注册

本版积分规则

85

主题

473

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部