哇,我希望我知道这个页面https://github.com/zaphoyd/websocketpp/blob/experimental/examples/broadcast_server/broadcast_server.cpp由我的 c++ 英雄https://stackoverflow.com/users/1047661编写/zaphoyd在我开始我的 c++ websocket 冒险之前。那里有很多课程。
如果我没看错(这是一个延伸的哈哈),看起来连接和消息发送和接收都是在一个线程中处理的(不能等到他“多线程”或者他所说的任何东西)在这个基本示例http://www.zaphoyd.com/websocketpp/manual/common-patterns/server-initiated-messages中WebSocket++ handlers block core networking functions. While this program is running its send loop in on_message, no new connections are being processed and no new messages are being received.
)并设置了一个单独的线程boost::thread(bind(&broadcast_server::process_messages,&server));
来实际处理消息,而主 websocket++ 线程只是添加到排队必要的信息。
知识不足请大家多多指教:.push()
如果和链接中这一段代码同时发生会不会失败
while(m_actions.empty()) {
m_action_cond.wait(lock);
}
action a = m_actions.front();
m_actions.pop();
lock.unlock();
还是.push()
只是等待锁被释放?