Fiber

Тема в разделе "Delphi - Система", создана пользователем NetDigger, 8 окт 2004.

Статус темы:
Закрыта.
  1. NetDigger

    NetDigger Гость

    Здравствуйте, уважаемые!
    Кто-нибудь сталкивался с необходимостью использовать Fiber'ы ("волокна") в свохи программах? Напишите, что полезного дают они программисту, кроме как портирование никсовых приложений в Вин32? Возможно, есть нестандартные способы их использования. Если у кого есть - буду рад ссылочке на ресурс (П.С. Рихтер зачитан до дыр =) Да, совсем забыл: работу с "волокнами" необходимо обеспечить в Дельфи через АПИ.
    Заранее благодарен.
     
  2. Barmutik

    Barmutik Гость

    Своего мнения нет поэтому приведу выдержку:

    В Дельфи нет никакой поддержки Fiber-ов, так что работать придётся через API в любом случае...
     
  3. zubr

    zubr Гость

    NetDigger

    Вот функции API для создания волокон в той последовательности, которая необходима для создания волокна:
    1. function ConvertThreadToFiber(lpParameter: Pointer): BOOL - вместо lpParameter надо поставить GetFiberData(хотя в модуле Windows.pas такой функции нет, поищи в других модулях - я это все делал в C++)
    2. function CreateFiber(dwStackSize: DWORD; lpStartAddress: TFNFiberStartRoutine;
    lpParameter: Pointer): BOOL
    3. function SwitchToFiber(lpFiber: Pointer): BOOL
    Для удаления волокна используй function DeleteFiber(lpFiber: Pointer): BOOL

    Сам видишь какой геморрой при создании волокна, а результат такой же как и при создании потока, где достаточно одной CreateThread
     
  4. NetDigger

    NetDigger Гость

    Спасибо за ответы. Приведенные функции мне хорошо известны. А вот придумать для демонстрации зачем нужны файберы несколько сложнее. Про управления файберами самим программистом тоже известно.
     
  5. NetDigger

    NetDigger Гость

    Здравствуйте, уважаемые!Со своей зада%
     
  6. NetDigger

    NetDigger Гость

    Хммм, почему же сервер так тормозит на моей-то выделенке в 256 кбит - господа сделайте что-нибудь уже с этим.А то как всегда вижу замечательные оборванные фразы с процентами в конце...
    Повторять придется.
    Здравствуйте, уважаемые! Со своей задачей я справился, спасибо как обычно МСДН. Ну а если кому решение также нужно, и начал искать как я не легких путей, отвечу - идите сразу на http://msdn.microsoft.com/library/default....base/fibers.asp и далее по ссылкам. Загляните и на http://www.rsdn.ru - там много таких вопросов.
    Спасибо за внимание, уважемые
     
  7. zubr

    zubr Гость

    NetDigger

    Так все таки, там где ты Fiber сделал, нитью нельзя было обойтись?
     
  8. NetDigger

    NetDigger Гость

    Мне в принципе надо было лишь продемонстрировать на реальном примере различия между потоком и волокном. Еще конкретнее-нужно было смоделировать как система распределяет время ЦП между потоками на простом случае. Хех, опять идет расхождение в терминах =) Ладно,Fiber - пусть будет волокно (хотя многие переводят как "нить"), Thread -пусть будет потоком=). Приложеньице получилось простецкое, но на его основе будем перетаскивать с никсов некоторые фишки =) Точнее, БУДУТ =)))
    Спасибо, уважаемые.
     
  9. NetDigger

    NetDigger Гость

    Мне в принципе надо было лишь продемонстрировать на реальном примере различия между потоком и волокном. Еще конкретнее-нужно было смоделировать как система распределяет время ЦП между потоками на простом случае. Хех, опять идет расхождение в терминах =) Ладно,Fiber - пусть будет волокно (хотя многие переводят как "нить"), Thread -пусть будет потоком=). Приложеньице получилось простецкое, но на его основе будем перетаскивать с никсов некоторые фишки =) Точнее, БУДУТ =)))
    Спасибо, уважаемые.
     
Статус темы:
Закрыта.

Поделиться этой страницей