12.4. wake primitive
connection::wake ()
方法通过触发 on_connection_wake ()
回调,允许任何线程在连接上提示活动。这是 连接
上唯一的 thread-safe 方法。
wake ()
是一个轻量级、低级别的原语,用于在线程之间进行信号。
-
它不执行任何代码或数据,这与
work_queue
不同。 -
对
wake ()
的多个调用可能会合并到一个on_connection_wake ()
中。 -
可能会出现对
on_connection_wake ()
的调用,而无需任何应用程序调用wake ()
,因为库在内部使用wake ()
。
wake ()
的语义与 std::condition_variable::notify_one ()
类似。会有一个唤醒,但必须有一些共享应用程序状态来确定发生唤醒的原因,以及要对其执行什么操作。
工作队列在很多实例中更易于使用,但是如果您已经拥有自己的外部线程安全队列,并且需要高效的方法来唤醒连接来检查它们的数据,则 wake ()
可能很有用。