工作中用到live555做rtsp客户端,由于是用的多线程获取不同的视频源,偶尔会出现崩溃问题。
最终定位在Locale这个类中,此类用了setlocale函数,然而setlocale不是线程安全。
解决办法有两个:
1、加锁
2、在每个rtsp工作线程函数开头加上一句
_configthreadlocale(_ENABLE_PER_THREAD_LOCALE) 使setlocale只针对当前线程起作用
建议使用第二种方法
工作中用到live555做rtsp客户端,由于是用的多线程获取不同的视频源,偶尔会出现崩溃问题。
最终定位在Locale这个类中,此类用了setlocale函数,然而setlocale不是线程安全。
解决办法有两个:
1、加锁
2、在每个rtsp工作线程函数开头加上一句
_configthreadlocale(_ENABLE_PER_THREAD_LOCALE) 使setlocale只针对当前线程起作用
建议使用第二种方法