Perl: являются ли специальные переменные потокобезопасными? - PullRequest
6 голосов
/ 20 июля 2011

Я читал некоторые вопросы, касающиеся глобальной переменной $ @ и того, как ее можно сжать до того, как она будет обработана из-за удачных попыток очистки ее.

Но что, если она застрянет из-за ошибки, произошедшей впараллельная нить?Новый пакет потоков говорит, что материал по умолчанию не является общим, что означает, что это один из немногих основных языков, который делает '$ a = $ a;'детерминированный по умолчанию (и думать, что люди говорят, что C # и Java лучше, чем Perl в больших проектах).Но я не уверен насчет специальных глобальных переменных.

Мой инстинкт инстинкта говорит, что они такие же, как и любая другая переменная, поэтому они не будут общими.Инстинкт моего мозга говорит: «Давайте проверим мастеров по Stackoverflow».

Я проверил учебник по потоковому программированию в Perldoc, и он охватывает обычные переменные в разделе общего доступа, но затем, кажется, движется дальше, не покрывая специальных переменных.1007 *

Могу ли я использовать специальные переменные без риска их засорения другими потоками, даже если я сначала не локализую их?Например, можно ли извлечь значение из $ @, не беспокоясь об ошибках, возникающих в параллельных потоках?

1 Ответ

6 голосов
/ 20 июля 2011

ваши мужики правы, они не передаются!

...