Книга: Программирование для Linux. Профессиональный подход
4.1.4. Подробнее об идентификаторах потоков
4.1.4. Подробнее об идентификаторах потоков
Иногда в программе возникает необходимость определить, какой поток выполняет ее в данный момент. Функция pthread_self()
возвращает идентификатор потока, в котором она вызвана. Для сравнения двух разных идентификаторов предназначена функция pthread_equal()
.
Эти функции удобны для проверки соответствия заданного идентификатора текущему потоку. Например, поток не должен вызывать функцию pthread_join()
, чтобы ждать самого себя (в подобной ситуации возвращается код ошибки EDEADLK
). Избежать этой ошибки позволяет следующая проверка:
if (!pthread_equal(pthread_self(), other_thread)) pthread_join(other_thread, NULL);
Похожие страницы
- Достоинства и недостатки потоков
- 4.3 Потоковый редактор sed
- Множество потоков, соревнующихся между собой за обладание единственным ресурсом
- Совет 12. Разумно оценивайте потоковую безопасность контейнеров STL
- Подробнее о психологических типах
- Необходимость в синхронизации потоков
- 26.5. Собственные данные потоков
- Объекты синхронизации потоков
- Подробнее о том, что можно сделать в VBA
- Реализация потоков в ядре Linux
- Приоритеты потоков
- Предотвращение перегруженности: для чего нужны несколько потоков