关于linux的毫秒定时器

慎思慎行 2013-11-10 10:45:32
在我的应用中使用linux的毫秒定时器作为我的基准定时器,为了防止重入,我使用全局变量保护,进入时++,退出时--,中间没有退出的语句;大部分情况运行正常,偶尔发现有++,--不能成对出现的现象造成定时器紊乱,大家有这样的遭遇吗?不胜感激
...全文
271 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
falloutmx 2013-11-15
  • 打赏
  • 举报
回复
全局变量不能代替锁的。。
再改变 2013-11-15
  • 打赏
  • 举报
回复
max_min_ 2013-11-14
  • 打赏
  • 举报
回复
加锁的逻辑确认有咩有问题呗!
beginning1126 2013-11-14
  • 打赏
  • 举报
回复
用volatile试下呢,保证每次都从内存读取。 而且,自增 自减不是原子操作,是要加锁的,如果多线程的话。
炽热恒星 2013-11-14
  • 打赏
  • 举报
回复
你这种方式锁不住,在你判断非0和++之间有可能会有竞争出现的。
慎思慎行 2013-11-11
  • 打赏
  • 举报
回复
谢谢关注。我也锁了的,我是在入口处判断该全局变量是否非0,非零的话就退出,然后再去++,处理完毕后再--
iasky 2013-11-11
  • 打赏
  • 举报
回复
需要atomic的操作。最好搞个锁或者信号量。
zhxianbin 2013-11-11
  • 打赏
  • 举报
回复
全局变量 要锁住的。

23,125

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧