2012-04-26 89 views
0

我刚碰到一个BNF Grammar for JAVA。其中“修饰符”有一个称为“线程安全”的终端符号。但是,我从来没有见过它,并且无法在Java语言规范Java SE 7 Edition(docs.oracle.com/javase/specs/jls/se7/jls7.pdf)中找到该修饰符。然而,我发现它here,描述它在子弹16:JAVA中的“threadsafe”修饰符?

如果另一个线程在同一时间excuting此代码不能改变一个变量的值,那么变量是线程安全的,而编译器可以做聪明事用它来使代码更快或更小。

这是一个真正的修饰符?它应该在JAVA的upcomming版本中引入吗?

+4

不,“threadsafe”不是修饰符。这只是在互联网上的东西。 – 2012-04-26 13:41:14

+0

当我读到时,让我笑起来:“......编译器可能会用它做出聪明的事情来使代码更快或更小。” – 2012-04-26 13:49:25

+0

神秘,为什么(至少)两所不同的大学传播这种不存在的修饰语。 – KoenigGunther 2012-04-26 14:06:29

回答

2

试试在Java的官方源代码BNF找到它here

+0

谢谢!谷歌搜索“Java BNF”直接把我带到了日内瓦大学的网站。看起来值得信赖:) – KoenigGunther 2012-04-26 14:02:23

0

不,它不是在同一个列表中被private_protected。

0

Java和Groovy在编译器中都有“线程安全”和“goto”等关键字作为“保留标记”,但它们现在在语言中没有任何意义。

+0

对此有何参考?转到我知道,因为它是在文档中提到的http://docs.oracle.com/javase/tutorial/java/nutsandbolts/_keywords.html,但从来没有听说过线程安全 – 2015-10-17 16:15:52