Во-первых, не убивайте и не отменяйте темы, попросите их убить себя. Если вы убиваете поток извне, вы никогда не знаете, какие побочные эффекты - переменные, состояние примитивов синхронизации и т. Д. - вы оставляете позади. Если вы считаете необходимым, чтобы один поток завершил другой, попросите проблемный поток проверить коммутатор, перехватить сигнал и прочее и очистить его состояние перед выходом из себя.
1) Если под неотменяемым подразумевается отсоединение, то же самое, что и присоединенная нить. Вы не знаете, какой беспорядок вы оставляете, если убиваете его вслепую.
2) С точки зрения уровня приложения главное, что если основной поток завершает работу () или возвращает (), то он удаляет все остальные потоки вместе с ним. Если основной поток завершает себя с помощью pthread_exit (), остальные потоки продолжаются.
3) Во многом как процесс поток будет сохранять некоторые ресурсы до тех пор, пока он не будет собран (присоединен) или программа не завершится, если она не была запущена как отдельная.
RE Примечание: потоки не разделяют стек, каждый из которых имеет свой собственный. См. clone () для получения дополнительной информации о создании потока.