【问题标题】:"threadsafe" modifier in JAVA?JAVA中的“线程安全”修饰符?
【发布时间】: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


【解决方案1】:

尝试在Java BNF的官方来源找到here

【讨论】:

  • 谢谢!谷歌搜索“Java BNF”直接将我带到了提到的日内瓦大学的网站。看起来值得信赖:)
【解决方案2】:

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

【讨论】:

    【解决方案3】:

    Java 和 Groovy 在编译器中都有像“threadsafe”和“goto”这样的关键字作为“保留标记”,但它们现在在语言中没有意义。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多