Perl:特殊变量是否安全?

时间:2011-07-19 20:41:54

标签: multithreading perl concurrency sharing non-deterministic

我正在阅读关于$ @全局变量的一些问题,以及如果因为成功的证据擦除它而在处理之前它是如何被破坏的。

但是如果它被并发线程中发生的错误所破坏呢?新的线程包说默认情况下不会共享内容,这意味着它是为数不多的主流语言之一,使'$ a = $ a;'默认是确定性的(并且认为人们说大型项目中C#和Java比Perl更好)。但我不确定特殊的全局变量。

我的直觉说他们就像任何其他变量一样,因此他们不会被分享。我的大脑的本能说'让我们检查一下Stackoverflow上的向导'。

我检查了Perldoc上的线程教程,它涵盖了共享部分中的常规变量,但似乎继续进行而没有覆盖特殊变量。

我是否可以使用特殊变量而不会被其他线程破坏,即使我没有先将它们本地化?例如。我可以从$ @中提取一个值,而不必担心并行线程中发生的错误吗?

1 个答案:

答案 0 :(得分:6)

你的胆量是正确的,它们不是共享的!