• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Fiber

  • Автор темы NetDigger
  • Дата начала
Статус
Закрыто для дальнейших ответов.
N

NetDigger

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

Barmutik

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

MS Win32 API:

In general, fibers do not provide advantages over a well-designed
multithreaded application.
However, using fibers can make it easier to port applications that
were designed to schedule their own threads.

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

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
 
N

NetDigger

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

NetDigger

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

NetDigger

Хммм, почему же сервер так тормозит на моей-то выделенке в 256 кбит - господа сделайте что-нибудь уже с этим.А то как всегда вижу замечательные оборванные фразы с процентами в конце...
Повторять придется.
Здравствуйте, уважаемые! Со своей задачей я справился, спасибо как обычно МСДН. Ну а если кому решение также нужно, и начал искать как я не легких путей, отвечу - идите сразу на и далее по ссылкам. Загляните и на - там много таких вопросов.
Спасибо за внимание, уважемые
 
Z

zubr

NetDigger

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

NetDigger

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

NetDigger

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

Обучение наступательной кибербезопасности в игровой форме. Начать игру!