Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Хотя на Хабре больше популярны скриптовые языки, однако основы — должны знать все ;)
Если ваша задача требует интенсивного распараллеливания, используйте потоки одного процесса, вместо нескольких процессов. Все потому, что переключение контекста процесса происходит гораздо медленнее, чем контекста потока.
Работают на уровне системы, а не на уровне процесса, т.е. могут служить механизмами иннерпроцессной коммуникации (IPC).
Реализация Posix Threads в Linux — Native Posix Threads Library (NPTL). Дело в том, что до версии ядра 2.6 pthreads в Linux был целиком и полностью реализован в режиме пользователя (реализую N: M модель). Однако это противоречило некоторым аспектам стандарта Posix, которые касаются планировщика, сигналов, примитивов синхронизации. Также модель вытеснения потоков, работала во многих случаях с ошибками, по этому поддержку pthread решено было положить на плечи ядра. Сразу две разработки велись в данном направлении компаниями IBM и Red Hat. Однако, реализация Red Hat вышла раньше, в 2003 году, и IBM остановило свою разработку. Позднее NPTL вошли в библиотеку glibc.1. В Linux никогда не использовалась библиотека с «N: M» моделью или с реализацией потоков в режиме пользователя. И древние LinuxThreads и современная NPTL использовали 1: 1 модель и только 1: 1 модель.
Процессы и потоки in-depth. Обзор различных потоковых моделей