最近开发一个Qt小工具,但程序运行一段时间后总是奔溃,排除程序可能奔溃的原因可能有:
1.多线程访问同一变量
解决方案:多个线程堆同一变量进行增删改查,在对变量操作时加锁
多线程运行时在线程内部sleep()或者wait()让出cpu的使用权,使多线程轮换操作
2.程序运行过程中内存不断增大,直到内存占比100%,导致程序奔溃
查看所有存放在堆区的变量,确保每个new是否对应一个delete
除此之外,C++常用容器中存储的数据也是存放在堆区(List、map、vector等)
尽量避免容器中的数据无限制的增加
3.访问的变量不存在