Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Что такое Fiber(WinApi)?  (Прочитано 10918 раз)
0 Пользователей и 1 Гость смотрят эту тему.
LemmonRus
Помогающий

ru
Offline Offline
В правильно заданном вопросе 90% ответа.


« : 21-05-2013 11:58 » 

Народ, чем отличаются Fiber (CreateFiberEx) от thread? А черт его знает...
Записан
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 21-05-2013 12:19 » 

Отличается тем, что Fiber — наследие Windows 3 и более ранних. Просто забудь о нем.
http://en.wikipedia.org/wiki/Fiber_%28computer_science%29
Кооперативная мультизадачность. Боян.
« Последнее редактирование: 21-05-2013 12:21 от RXL » Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #2 : 21-05-2013 15:10 » 

RXL, ну как боян... всё зависит от тяжести переключения контекста. Если в отличие от thread эта операция протекает легче, и fiber - это green thread, то смысл есть. Если же равно тяжело, то, конечно, его следует забыть как анахронизм.
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #3 : 21-05-2013 18:29 » 

Скажем так: специфично. Для современных x86 вещь не нужная. Даже такие «сопрограммные» языки как Python и Ruby для ускорения работы нуждаются в полноценной многопоточности. Для процессоров же слабых, однопоточных, особенно, где нет поддержки многозадачности, это хорошее решение. CreateFiberEx — явно речь о x86.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #4 : 21-05-2013 22:05 » 

RXL, green threads сильны не этим, а самой моделью управляемого переключения и кооперативной работы. Если модель на thread'ах предполагает усиленную синхронизацию, то эффективно утилизировать ресурс многоядерной машины всё равно не выйдет - ядра будут стоять, а вот на переключении контекста ресурсы будут расходоваться усиленно, и выйдет тормознее, чем на green threads даже при той же модели синхронизации.

С минимумом торможения работают модели без синхронизации - это так или иначе функциональный подход. Каждая микрозадача назначается одному из потоков пула и работает там до конца. по ходу дела и/или по завершении она асинхронно вызывает другие задачи. процесс протекает до тех пор, пока в очереди задач, поставленной к пулу на исполнение, задачи не будут исчерпаны. Если соберусь с силами, могу и подробнее изложить.
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
LemmonRus
Помогающий

ru
Offline Offline
В правильно заданном вопросе 90% ответа.


« Ответ #5 : 22-05-2013 08:26 » 

RXL, green threads сильны не этим, а самой моделью управляемого переключения и кооперативной работы. Если модель на thread'ах предполагает усиленную синхронизацию, то эффективно утилизировать ресурс многоядерной машины всё равно не выйдет - ядра будут стоять, а вот на переключении контекста ресурсы будут расходоваться усиленно, и выйдет тормознее, чем на green threads даже при той же модели синхронизации.

С минимумом торможения работают модели без синхронизации - это так или иначе функциональный подход. Каждая микрозадача назначается одному из потоков пула и работает там до конца. по ходу дела и/или по завершении она асинхронно вызывает другие задачи. процесс протекает до тех пор, пока в очереди задач, поставленной к пулу на исполнение, задачи не будут исчерпаны. Если соберусь с силами, могу и подробнее изложить.
Сильно обяжете.
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines