自己遇到的BUG(一)

27 篇文章 1 订阅
10 篇文章 0 订阅
1. 访问一个已被删除对象的成员
    具体场景:pMagRoll指向一个变量,然后在程序中usleep(1000*pMsgRoll->speed)来控制显示的速度,但是
pMsgRoll是一个临界资源,会被其他线程修改,最后导致某个变量被删除以后导致速度变得不可控制。
   解决方法:定义一个和临界变量无关的变量,用变量来保存我们要使用到的临界对象的属性,而不是直接使用
  指针会的临界对象的属性值。

2. Qt的usleep()
   Qt会封装每个系统平台的接口,并且还会提供自身实现的某些接口。QThread里面就有一个usleep()方法,在程序中,若果写成 usleep(1000),就会调用QThread里面的函数,要想调用系统提供的usleep,需要按照如下的格式:
  ::usleep(1000);
   比如下面的代码:
  
就可以看出,QT是对不同平台的封装。摘自qthread.cpp源文件。

3.嵌入式平台上频繁读取某个文件导致速度降低
   嵌入式平台由于资源有限,常常会使用SD卡来扩展系统的存储容量。但是,如果我们频繁的读取SD卡中的文件,可能会成为程序整个的瓶颈。
   解决的方法是可以在/tmp下面创建文件,或者使用共享内存。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值