SIGKILL нельзя игнорировать/обрабатывать любым процессом. Когда основной поток возвращается, он завершает весь процесс. Это включает все другие потоки в процессе. То же самое происходит, когда вы вызываете выход из любого потока.
В Linux нет такой «явной» разницы между процессом и потоком. Каждый из них представлен task_struct
в ядре, и они соединены вместе.
Каждый основной поток процесса имеет идентификатор pid и группы задач (tgid). Таким образом, все потоки также имеют одинаковые pid или tgid.
Когда процесс очищается, все это child processes,not threads are reparented
.
Это больше о семантике:
волоске акции это ресурсы с его родителем, который в основном означает, что отображения памяти, дескрипторов файлов и т.д.
Когда сам процесс не существует, кто нити собираются поделиться ресурсами с помощью?
Вы не можете отследить их до какого-либо другого процесса, так как им нужно будет использовать его ресурсы.
Так, короче говоря, Дочерний процесс может быть предок, так как он не акций каких-либо ресурсов, где, как дочерний поток не может быть предком
.
Если вы хотите копать глубже, вы можете начать здесь: makelinux
если процесс А (ИДП-1234) начинает потоковый РОТ [РОТ работает бесконечный цикл], и мы выдаем SIGKILL А (PId- 1234), также остановлен/убит ptA? – user1254554
@ user1254554 Да, если процесс убит, все потоки в этом процессе будут убиты. Нить не может существовать без процесса. – dbush