![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 15 Всего: 26 |
Кто нибудь применял сопрограммы на практике?
Я пока нашел только такие варианты реализации:
Устройство Даффа плохо тем что возникают потенциальные сложности с локальными объектами в сопрограмме, макросы тяжело отлаживать. Ручная работа со стеком крайне сложна в реализации и фактически является заменой фиберов. Это сообщение отредактировал(а) GoldFinch - 25.3.2010, 12:26 |
|||
|
||||
SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 4 Всего: 91 |
Я правильно понимаю, сопрограмма это таже же асинхронная очередь событий как и в Qt? То есть один поток используется для обработки нескольких циклов. Предположим я вызываю сопрограмму, её вызов становится в очередь до того момента когда я выйду из итерационного цикла и не войду в него снова. Как только я покинул область видимости функции вызывается моя сопрограмма, которая блокирует вход моего предыдущего цикла пока не завершится и не вызовет меня обратно точно также по завершении. В общем yield это аналог emit в Qt с Qt::QueuedConnection.
|
|||
|
||||
xvr |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 60 Всего: 223 |
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |