Re[2]: Управление потоками
От: the_moon  
Дата: 10.10.02 15:01
Оценка:
Здравствуйте achumack, Вы писали:

A>Здравствуйте the_moon, Вы писали:


A>

A>Посмотри fibers. Ето то что тебе нужно. Сам выбираешь время переключения.

Я тут читал, читал.

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

Тогда я не понял следующию фразу "The system still schedules threads to run. When a thread running fibers is preempted, its currently running fiber is preempted. The fiber runs when its thread runs."

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

И непонятно еще как мне определять размер стэка, как я могу быть уверенным, что мне хватит 1 мегабайта к примеру для DirectX, может он там чего огромное в стеке держит?

И еще, происходит ли сразу переключение на другую нить, то-есть наследует ли целевой поток тот квант времени, что оставался у потока, который вызвал SwitchToFiber, или просто этот поток будет на процессоре остановлен, а управление перейдет чужому дядьке?

А вообще конечно идея хорошая,
KOPOTbILLIKA KPbIC
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.