多线程访问串口 点击:573 | 回复:1



xuzhenrui

    
  • 精华:2帖
  • 求助:12帖
  • 帖子:79帖 | 205回
  • 年度积分:0
  • 历史总积分:1038
  • 注册:2003年9月11日
发表于:2003-07-08 11:22:00
楼主
我在做一个项目,同时有五个线程都需要访问串口,而且发出通讯命令后都需要等待返回代码。但是工控机只有一个串口。如何避免访问冲突,我想利用一个全局变量来保证在某一时刻只允许一个线程访问串口,但五个线程都必须循环去读该全局变量,效率太低,不知道各位有没有什么更好的办法。请指教。



GaryLin

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 1186回
  • 年度积分:0
  • 历史总积分:1263
  • 注册:2003年4月15日
发表于:2003-07-08 11:22:00
1楼
Multi-Thread 的写法问题不少, 能避则避, 非不得已不用之. 5 个 thread 轮流去 check TaskFlag, 您能保证每个 thread 都能平均的分配到 com port 的收发时间吗? (不是指 thread 的执行时间.) 运气不好(timing 不对) 的 thread, 很可能每次执行时, 该 TaskFlag 都被占用中, 也可能 always 没有机会收发数据.

热门招聘
相关主题

官方公众号

智造工程师