M>>Все просто. Мы запустили поток, нам нужно:
M>>- Знать, что поток выполняется
M>>- Знать, когда поток завершится, и узнать, как поток завершился (вернул значение, вылетел с ошибкой)
M>>- Возможно, перезапустить поток, если он завершился
M>>- Убить поток, если это необходимо
Ф>Зачем всё это? (зачем управлять потоками)
Тут наш коллега Ikemefula спрашивает, почему я считаю, что люди не читают, что я пишу. Ну а как еще говорить, если пишешь, зачем управлять потоками, и тут же тебя спрашивают: а зачем управлять потоками?
Ф>Почему нельзя положиться на рантайм — пусть он управляет.
Действительно, ведь рантайм наделен телепатической силой и знает о том, что программист хочет сделать.
Ф>Я даже в абсолютном большинстве ситуаций не вижу смысла "запускать поток" — в пень, не хочу ни создавать ещё один, лишний, объект, ни следить за его временем жизни.
Для не-Erlang'иста это — нереализуемо даже в самых страшных (или влажных) снах. Не потому что «это не нужно» ©, а потому что другие языки (и доступные для них библиотеки) не предоставляют ни малейшей поддержки для реализации такого.
Ф>Что за глупость убивать поток?
Ф>Когда это может быть необходимо? Что делать с оставшейся программой, у которой убили поток?
Ф>И слава богу!
Ф>Убивать нативные потоки — очень-очень плохая идея (читай классиков). Убийство managed потоков — тоже не есть здравая мысль, почти по тем же причинам.
Ф>Для того чтобы иметь возможность безболезненно убить MANAGED поток нужно иметь возможность гарантировать, что он в процессе своего выполнения не зааффектил ничего из внешнего мира.
Простейший пример, который я чуть ли не в каждой первой десктопной прграмме: фоновые задачи. Например, всякие IDE индексируют файлы для поиска, компилируют программы и т.п. в отдельных потоках, не влияющих на GUI-поток. Ты не поверишь, но возникает необходимость выполнение этих задач прекратить. И таких примеров (управление потоками и прочее, что я описал) сотни. Надо только немного подумать и взглянуть за пределы своих уютных мирков.
Остальное все поскипано, потому что надоело по пятидесятому кругу что-то объяснять людям, которые предпочитают отвечать, не читая и даже не потратив и секунды на размышление.