问题现象:
Qt多线程程序概率性出现崩溃问题,找到崩溃时候生成的core文件,用gdb调试定位到下面错误位置
Program terminated with signal SIGSEGV, Segmentation fault.
#0 0x0000007fa72d5e54 in QWidgetBackingStore::sync() () from ./lib/libQtGui.so.4
问题原因:
两个线程同时操控UI界面控件,没有加互斥锁导致资源竞争
解决办法:
通过信号槽机制,将子线程的消息emit到主UI线程中处理。
总结!!!切忌在多个线程中同时操控ui界面,统一在一个线程里处理