落寞天空

文章
7
资源
0
加入时间
3年12月3天

queue非线程安全及多线程解决办法

stl的queue是非线程安全的比如下面的应用场景:子线程对queue队列做push操作,同时主线程对queue执行pop操作,则可能会发生异常。解决办法:方案1:自己写一个循环队列,则不存在同时push与pop的问题。方案2:加一个全局互斥锁,核心代码如下:#define LOCK_G_MSGQUEUE() \while(g_free_lock == true)