【发布时间】:2012-04-26 13:36:55
【问题描述】:
我刚刚遇到了BNF Grammar for JAVA。其中,“修饰符”有一个称为“线程安全”的终端符号。但是,我以前从未见过它,也无法在 Java 语言规范 Java SE 7 版 (docs.oracle.com/javase/specs/jls/se7/jls7.pdf) 中找到该修饰符。然而,我发现它here,在第 16 条中将其描述为:
如果同时执行此代码的另一个线程无法更改变量的值,则该变量是线程安全的,编译器可能会使用它做一些聪明的事情来使代码更快或更小。
这是一个真正的修饰符吗?是否应该在即将发布的 JAVA 版本中引入?
【问题讨论】:
-
不,“线程安全”不是修饰符。这只是互联网上的东西。
-
当我读到:“……编译器可能会用它做一些聪明的事情来使代码更快或更小。”
-
神秘,为什么(至少)两所不同的大学传播这个不存在的修饰符。
标签: java thread-safety grammar bnf modifier