2012-04-26 66 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