Я поставил много потоков. В более позднее время я хотел бы проверить, остались ли эти потоки живыми (т. Е. Еще не закончены и не прекращены неожиданно).Следите за pthread
Какую информацию следует отслеживать в отношении потоков в первую очередь. Идентификатор потока, идентификатор процесса и т. Д.? Как мне получить эти идентификаторы?
Когда мне нужно проверить жизнеспособность этих потоков, какие функции я должен использовать? Будет ли
pthread_kill
работать здесь?pthread_kill
принимает непрозрачный типpthread_t
как параметр, который, как я считаю, обычно равенunsigned long
. Ispthread_t
отличается от ID потока? Я предполагаю, что идентификатор потока получит значение int в качестве значения. В некоторых учебниках по pthread они присваивают целому числу pthread как его идентификатор. Должен ли поток получать свой идентификатор из операционной системы?
Отдельный или объединенный? – Duck
@ Duck Я считаю, что я должен учитывать оба фактора. –
pthread_t - это typedef, означающее, что это может быть много, а не просто. Да, pthread_create возвращает threadid как тип данных pthread_t. Используйте массив pthread_t для хранения активных потоков. –