![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
io_service::strandBoost , Boost.Asio , Reference
|
Имя |
Описание |
---|---|
Просите пряди вызвать данного обработчика. |
|
Получите услугу io_, связанную с нитью. |
|
Попросите пряжу призвать данного обработчика и немедленно вернуться. |
|
Определить, работает ли нить в текущей нити. |
|
Конструктор. |
|
Создайте новый обработчик, который автоматически отправляет обернутый обработчик на нить. |
|
Разрушитель. |
Класс<io_service::strand
>обеспечивает возможность отправки и отправки обработчиков с гарантией того, что ни один из этих обработчиков не будет выполнять одновременно.
Учитывая:
s
>a
>, отвечающий требованиям обработчика завершенияa1
>, являющийся произвольной копией<a
>, выполненной реализациейb
>, отвечающий требованиям обработчика завершенияb1
>, являющийся произвольной копией<b
>, выполненной реализациейесли верно одно из следующих условий:
s.post(a)
>происходит до<s.post(b)
>s.post(a)
>происходит до<s.dispatch(b)
>, где последнее совершается вне цепиs.dispatch(a)
>происходит до<s.post(b)
>, где первое совершается вне цепиs.dispatch(a)
>происходит до<s.dispatch(b)
>, где оба выполняются вне нити.<asio_handler_invoke(a1,
&a1)
>до<asio_handler_invoke(b1,
&b1)
>.
Обратите внимание, что в следующем случае:
async_op_1(..., s.wrap(a)); async_op_2(..., s.wrap(b));
Завершение первой асинхронной операции будет выполняться<s.dispatch(a)
>, а второй будет выполняться<s.dispatch(b)
>, но порядок, в котором они выполняются, не определен. То есть вы не можете сказать, происходит ли одно раньше другого. Таким образом, ни одно из вышеперечисленных условий не выполняется, и не предоставляется никаких гарантий заказа.
Реализация не гарантирует, что обработчики, размещенные или отправленные через различные объекты<strand
>, будут вызываться одновременно.
Отличительныеобъекты:Сейф.
Совместнообъекты:Сейф.
Заголовок:<boost/asio/strand.hpp
>
Удобный заголовок:<boost/asio.hpp
>
Статья io_service::strand раздела Boost.Asio Reference может быть полезна для разработчиков на c++ и boost.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
реклама |