Boost C++ 库

...世界上最受推崇和专业设计的 C++ 库项目之一。 Herb SutterAndrei Alexandrescu, C++ 编码标准

PrevUpHomeNext

线程和 Boost.Asio

线程安全

一般来说,并发使用不同的对象是安全的,但并发使用单个对象是不安全的。但是,诸如 io_context 之类的类型提供了更强的保证,即并发使用单个对象是安全的。

线程池

多个线程可以调用 io_context::run() 来设置一个线程池,完成处理程序可以从该线程池中调用。这种方法也可以与 post() 一起使用,作为跨线程池执行任意计算任务的一种手段。

请注意,所有已加入 io_context 线程池的线程都被认为是等效的,并且 io_context 可能会以任意方式在它们之间分配工作。

内部线程

此库在特定平台上的实现可能会使用一个或多个内部线程来模拟异步性。在可能的范围内,这些线程对于库用户必须是不可见的。 特别是,这些线程

以下保证是对这种方法的补充

因此,库用户的责任是创建和管理所有将传递通知的线程。

这种方法的原因包括

另请参阅

io_context, post


PrevUpHomeNext