std::unique_lock<std::mutex> lock(g_mutex); printf("\n检测到一个连接:\n\n");该代码为什么会在线程执行结束后运行
时间: 2024-05-18 14:13:28 浏览: 55
C++11 std::shared_ptr总结与使用示例代码详解
这段代码不会在线程执行结束后运行,而是在线程中被执行。这是因为在该代码中,使用了 std::unique_lock 对共享资源 g_mutex 进行了加锁操作,保证了该代码段的原子性,即该代码段中的所有语句都是作为一个整体被执行的。当有其他线程尝试访问 g_mutex 时,会被挂起等待该线程执行完毕并释放锁之后才能访问 g_mutex。因此,在该线程执行结束之前,该代码段不会被其他线程执行。只有当该线程释放锁之后,其他线程才有机会访问 g_mutex 并执行该代码段。
阅读全文