Re[2]: Эрланг и все-все-все (на самом деле, не совсем)
От: Mamut Швеция http://dmitriid.com
Дата: 29.06.15 06:46
Оценка:
M>>Все просто. Мы запустили поток, нам нужно:
M>>- Знать, что поток выполняется
M>>- Знать, когда поток завершится, и узнать, как поток завершился (вернул значение, вылетел с ошибкой)
M>>- Возможно, перезапустить поток, если он завершился
M>>- Убить поток, если это необходимо

Ф>Зачем всё это? (зачем управлять потоками)


Тут наш коллега Ikemefula спрашивает, почему я считаю, что люди не читают, что я пишу. Ну а как еще говорить, если пишешь, зачем управлять потоками, и тут же тебя спрашивают: а зачем управлять потоками?

Ф>Почему нельзя положиться на рантайм — пусть он управляет.


Действительно, ведь рантайм наделен телепатической силой и знает о том, что программист хочет сделать.

Ф>Я даже в абсолютном большинстве ситуаций не вижу смысла "запускать поток" — в пень, не хочу ни создавать ещё один, лишний, объект, ни следить за его временем жизни.


Для не-Erlang'иста это — нереализуемо даже в самых страшных (или влажных) снах. Не потому что «это не нужно» ©, а потому что другие языки (и доступные для них библиотеки) не предоставляют ни малейшей поддержки для реализации такого.


Ф>Что за глупость убивать поток?

Ф>Когда это может быть необходимо? Что делать с оставшейся программой, у которой убили поток?
Ф>И слава богу!
Ф>Убивать нативные потоки — очень-очень плохая идея (читай классиков). Убийство managed потоков — тоже не есть здравая мысль, почти по тем же причинам.
Ф>Для того чтобы иметь возможность безболезненно убить MANAGED поток нужно иметь возможность гарантировать, что он в процессе своего выполнения не зааффектил ничего из внешнего мира.


Простейший пример, который я чуть ли не в каждой первой десктопной прграмме: фоновые задачи. Например, всякие IDE индексируют файлы для поиска, компилируют программы и т.п. в отдельных потоках, не влияющих на GUI-поток. Ты не поверишь, но возникает необходимость выполнение этих задач прекратить. И таких примеров (управление потоками и прочее, что я описал) сотни. Надо только немного подумать и взглянуть за пределы своих уютных мирков.



Остальное все поскипано, потому что надоело по пятидесятому кругу что-то объяснять людям, которые предпочитают отвечать, не читая и даже не потратив и секунды на размышление.


dmitriid.comGitHubLinkedIn
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.