std::thread([&]() { { std::lock_guard<std::mutex> lock(m_mutex); m_acceptor->async_accept(std::bind(&LocalEndpoint::acceptCbk, this, std::placeholders::_1, std::placeholders::_2)); } m_io.run(); }).detach();
时间: 2024-01-20 17:03:18 浏览: 133
藏经阁-多线程-陶云峰.pdf
这是一个使用 C++11 标准库中的线程类 std::thread 创建一个新的线程,并在其中异步执行 accept 操作的代码。其中,使用 std::lock_guard 对 m_mutex 进行加锁,以保证线程安全;使用 m_acceptor->async_accept 异步接收连接,并在连接建立后调用 acceptCbk 函数进行回调;最后使用 m_io.run() 运行 io_service,以保证异步操作可以得到正确处理。最后使用 detach() 将线程和当前线程分离,使得它们可以独立运行。
阅读全文