mutex
·cpp
#hpp
互斥锁 <mutex>
互斥锁是
在多线程环境下,如果多个线程要向同一个队列中插入任务(回调函数等),那么就必须保护这个队列的访问防止数据竞争与不一致。例如:
使用std::mutex对队列操作加锁,确保一次只有一个线程可以读写队列。 或使用无锁结构(如atomic + lock-free队列)保证线程安全。 在eventLoop中经常使用一个std::vector<std::function<void()>>存放需要在Loop所属的线程里执行的回调函数。如果其他线程要向这个vector中添加回调,就必须加锁保护,以保证多线程安全,然后通过eventfd唤醒eventLoop线程执行这些回调。
多线程并发情况下,对存放回调的容器进行互斥保护,从而安全地跨线程提交任务。