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

Event-Driven Program

Boost , Chapter 1. Fiber , Sharing a Thread with Another Main Loop

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

Рассмотрим классическую программу, основанную на событиях, организованную вокруг основного цикла, который отслеживает и отправляет входящие события ввода-вывода. Вы вводите Boost.Fiber, потому что некоторые асинхронные последовательности ввода/вывода логически последовательны, и для тех, кто хочет писать и поддерживать код, который выглядит и действует последовательно.

Вы запускаете волокна на основной поток приложения’s, потому что некоторые из их действий будут влиять на его пользовательский интерфейс, а UI-фреймворк приложения’ разрешает операции UI только на основном потоке. Или, возможно, эти волокна нуждаются в доступе к основным данным, и было бы слишком дорого во время выполнения (или времени разработки), чтобы надежно защитить каждый такой элемент данных с помощью примитивов синхронизации потоков.

Вы должны убедиться, что основной цикл приложения’ itself не’t монополизирует процессор: что запущенные им волокна получат нужные им циклы процессора.

Решение такое же, как и для любого волокна, которое может претендовать на процессор в течение длительного времени: введите вызовы this_fiber::yield(). Наиболее простой подход заключается в вызове yield() на каждой итерации существующего основного цикла. По сути, это унифицирует основной цикл приложения’ с Boost.Fiber’s внутренний основной цикл. yield() позволяет диспетчеру волокон запускать любые волокна, которые стали готовыми с момента предыдущей итерации основного цикла приложения’s. Когда эти волокна имеют поворот, управление переходит к основному волокну резьбы’, которое возвращается из выхода() и возобновляет основной цикл приложения’.


PrevUpHomeNext

Статья Event-Driven Program раздела Chapter 1. Fiber Sharing a Thread with Another Main Loop может быть полезна для разработчиков на c++ и boost.




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



:: Главная :: Sharing a Thread with Another Main Loop ::


реклама


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

Время компиляции файла: 2024-08-30 11:47:00
2025-05-19 23:48:25/0.006309986114502/0