Как Rust обрабатывает темы уничтожения?
Нет;нет способа уничтожить поток.
См. также:
Есть ли связь родитель-потомок между порожденными потоками?
Когда вы создаете поток, вы получаете JoinHandle
, который позволяет вам дождаться завершения дочернего потока.Ребенок не знает родителя.
[что происходит с другими потоками] в контексте паники и смерти потока
Документация для thread::spawn
покрывает этот колодец:
Дескриптор соединения неявно отсоединяет дочерний поток при удалении.В этом случае дочерний поток может пережить родительский поток (если родительский поток не является основным потоком; весь процесс завершается, когда основной поток завершается).Кроме того, дескриптор соединения предоставляет метод join
, который можно использовать для присоединения дочернего потока.Если дочерний поток паникует, join
вернет Err
, содержащий аргумент, данный panic
.
То есть, после того, как дочерний поток был запущен, то, что происходит с родительским потоком, в основном не имеет значения, если родительский поток не был основным потоком, и в этом случае весь процесс завершается.