Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

io_service::strand

Boost , Boost.Asio , Reference

Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

PrevUpHomeNext

Обеспечивает серийное исполнение обработчика.

class strand
Member Functions

Имя

Описание

отправка

Просите пряди вызвать данного обработчика.

get_io_service

Получите услугу io_, связанную с нитью.

пост

Попросите пряжу призвать данного обработчика и немедленно вернуться.

run_in_this_thread

Определить, работает ли нить в текущей нити.

нить

Конструктор.

обернуть

Создайте новый обработчик, который автоматически отправляет обернутый обработчик на нить.

~ нить

Разрушитель.

Класс<io_service::strand>обеспечивает возможность отправки и отправки обработчиков с гарантией того, что ни один из этих обработчиков не будет выполнять одновременно.

Order of handler invocation

Учитывая:

  • Вещь, которая является предметом<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)>, но порядок, в котором они выполняются, не определен. То есть вы не можете сказать, происходит ли одно раньше другого. Таким образом, ни одно из вышеперечисленных условий не выполняется, и не предоставляется никаких гарантий заказа.

Remarks

Реализация не гарантирует, что обработчики, размещенные или отправленные через различные объекты<strand>, будут вызываться одновременно.

Thread Safety

Отличительныеобъекты:Сейф.

Совместнообъекты:Сейф.

Requirements

Заголовок:<boost/asio/strand.hpp>

Удобный заголовок:<boost/asio.hpp>


PrevUpHomeNext

Статья io_service::strand раздела Boost.Asio Reference может быть полезна для разработчиков на c++ и boost.




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Reference ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-30 11:47:00
2025-05-20 05:51:06/0.0063540935516357/0