使用boost链和std :: mutex

时间:2019-03-15 14:43:46

标签: c++ c++11 boost boost-asio

关注此site

文章 HTTP Server 3

他们使用立场保证这些处理程序均不会同时执行。

所以,我有3个线程调用io_context.run(),这导致它们进入通道,并且可能必须同时使用vector的push_back。

我是否必须使用std :: mutex来锁定push_back函数以防止它们并发调用,或者由 strand 对其进行良好的管理?

1 个答案:

答案 0 :(得分:1)

假设所有代码都在该链中正确运行,那么一次只有一个线程将在执行您的代码。

正在执行代码的线程将在三个可用线程之间切换,但一次只能执行一个功能。

因此,您不需要互斥体,这是使用线束的一部分,因为互斥体很难在异步代码中正确使用。