[Moscow.pm] use Thread vs threads
Ivan Petrov
i.petro.77.00 на gmail.com
Вт Янв 19 09:39:09 PST 2016
> Ok.
> А, что тогда не зло?
fork
> Наверное процессы (fork)?
> Тогда геморойно с обмен общими данными.
но это единственный способ.
в общих чертах суть в следующем. в обычном скриптовом языке,
допускающем глобальные переменные (= переменные в области видимости)
банально невозможно реализовать мултитред, так чтобы не вводить
ограничения в язык с одной стороны и не сегфолтить с другой.
выходов ровно два: либо mutex внутри каждого скаляра, либо глобальный
mutex в сочетании с mutex к функциям
что в традиционной однотредовой программе приводит к диким потерям
производительности.
соответственно я пока не видел скриптового языка, в который воткнули
треды и это работает.
треды либо изначально есть в языке, либо их втыкают со значительными
ограничениями на сам язык. другого варианта нет.
поэтому тредов никогда не будет ни в питоне ни в перле ни в руби ни в
прочих языках такого же уровня.
насчет "геморройно" - ответ такой: пробуйте Go, пробуйте Erlang. в них
геморройно нечто другое. однако с тредами (и даже хостами) все хорошо
Подробная информация о списке рассылки Moscow-pm