LINUX.ORG.RU

Применение phreads


0

0

Приветствую all!

Вопрос по subj! Нашел как создавать поток, а как его убивать из родителя? Вот этого я что то не обнаруживаю ...

Всем заранее спасибо ...

anonymous

Вообще-то "убивать" потоки - дурной тон, хотя можно воспользоваться вызовом pthread_cancel.
Гораздо логичнее управлять потоками с помощью условных переменных (pthread_cond_t) и мьютексов. Поток сам должен завершать свою работу, а явно убивать его из другого потока - это, по-моему, уже аварийная ситуация.
Если поток обменивается данными с другими потоками по более-менее сложному протоколу, его "убийство" может запросто порушить всю программу.

romanSA
()

2 romanSA не совсем... бывает надо если поток заблокирован вызовом pthread_cond_wait или если структура системы не конвеер а конкурентная обработка данных...

2anonymous посмотри еще pthread_cleanup_push и pthread_cleanup_pop может понадобиться для корректной обработки завершения работы потока

countFF
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.