Урок 9: POSIX Threads — создание и join
Поток — это легковесная единица выполнения внутри процесса. В этом уроке мы научимся создавать потоки с помощью pthread_create, ожидать их с помощью pthread_join и поймём фундаментальное различие между потоком и процессом.
Процесс — это фабрика; поток — это рабочий на фабрике. Все рабочие разделяют один и тот же склад (память), но каждый работает независимо.
- поток (thread)
- Независимая единица выполнения внутри процесса, разделяющая память и таблицу файловых дескрипторов с другими потоками, но со своим собственным стеком и регистрами.
- pthread
- POSIX Threads — стандарт Unix для управления потоками, реализованный в Linux через libpthread. API включает pthread_create, pthread_join и другие.
- pthread_create
- Функция для создания нового потока. Принимает идентификатор потока, атрибуты, стартовую функцию и аргумент. Возвращает 0 при успехе.
- pthread_join
- Ожидает завершения потока и освобождает его ресурсы. Без join поток-зомби остаётся в памяти.
- TID (идентификатор потока)
- Уникальный идентификатор потока внутри процесса, возвращаемый pthread_self() или сохраняемый в pthread_t, переданном в pthread_create.