qixibujiabing 2019-05-07 19:09 采纳率: 50%
浏览 352

多线程间数据访问问题

若现开启三个串口 分别为三个线程不断接受数据

void COM1()
{
        while(1)
        {
                a1=recv1_1();
                a2=recv1_2();
                Sleep(5);
        }
}
void COM2()
{
        while(1)
        {
                b1=recv2_1();
                b2 = recv2_2();
                Sleep(5);
        }
}
void COM3()
{
        while(1)
        {
                c1=recv3_1();
                c2 = recv3_2();
                Sleep(5);
        }
}

主线程在某时刻需要使用该时刻的a1 a2 b1 b2 c1 c2 变量

void main()
{
    XXX
}

问:主线程使用以上几个变量的时候应注意什么才能保证几个变量是同一时刻的, (比如说主线程采集到a1,而时间片轮转到另一个线程,再采集a2的时候就是另一个时间的了),只需要对子线程的变量加临界区就行吗?

谢谢!
  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2022-09-20 19:36
    关注
    不知道你这个问题是否已经解决, 如果还没有解决的话:

    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 MATLAB动图问题
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名