java-memory-model

    0熱度

    1回答

    這個問題涉及JMM: https://www.cs.umd.edu/~pugh/java/memoryModel/jsr133.pdf 能否請您解釋一下從JMM規範下面的表達式(這是第13頁的第5節): 更具體地說如果兩個動作共享之前發生的關係,那麼它們不一定必須按照 的順序發生,以致它們不與任何發生在 之間的關係發生共享的代碼發生。在另一個線程中,在一個數據競賽中寫入 的線程可能會出錯,例如,這

    4熱度

    1回答

    我知道在構造函數完成之後,最終的實例變量會安全地發佈到所有線程。但是,我想知道這是否仍然安全,如果最終的實例變量包含對包含非最終實例變量的對象的引用。在構造函數完成之後,這個次要的,非final實例變量永遠不會改變。請看下面的例子: public class NonFinalImmutable { private Iterable<String> list = Collections.u

    0熱度

    1回答

    當我在http://www.javaworld.com/article/2074979/java-concurrency/double-checked-locking--clever--but-broken.html上看到一篇關於DOUBLE-CHECKED LOCKING的文章時,我遇到了一個評論,內容是「應該指出,DCL實際上可能在某些版本的JVM上工作 - 因爲很少JVM實際實現JMM正確。

    4熱度

    3回答

    的我的問題是給帖子: https://shipilev.net/blog/2014/safe-public-construction/ public class UnsafeDCLFactory { private Singleton instance; public Singleton get() { if (instance == null) { // read

    -3熱度

    2回答

    以下代碼 public class Coordination { private volatile int counter = 0; public static void main(String ... args) throws Exception { new Coordination().volatileWithCoordination(); }

    -1熱度

    2回答

    我一直在閱讀上併發的JMM,以及如何操作可以重新排序,以及如何對象只能看到部分從另一個線程結構等被 我從來沒有見過那些在「現實生活」 。我能否有一個工作示例,至少有時會演示那些並不明顯的併發/ JMM技巧?這樣的例子比純粹的理論知識要好得多。 我的意思是,這些例子說明了意想不到的行爲,而不是如何做到這一點的例子正確。

    3熱度

    1回答

    Javadoc of Executor interface說以下內容: 內存一致性效果:操作在一個線程提交Runnable對象到Executor之前發生-之前其執行開始,也許在另一個線程。 Java語言規範的哪個部分保證?還是僅僅因爲這些實現使用了一些內部同步? (如果是這種情況,一個例子會很棒。)因此,在實施自定義Executor時,我是否應該知道這一要求?

    0熱度

    1回答

    已知「讀取/寫入」非易失性long和double變量可能是非原子的。這涉及靜態和非靜態字段和數組。 那麼相應的長/雙局部變量呢?他們是否原子化?

    1熱度

    1回答

    我想知道是否有任何輕量級的方法來(粗略地)測量一個給定的Java類正在使用多少內存。讓我們考慮以下接口: interface MyAction <T, R> { R execute(T item); } 我想知道有多少內存作爲實例字段中的所有對象或作爲overrided執行方法變量使用。當然,它也應該考慮調用其他方法時創建的每個對象。 至於我能理解(閱讀本reply)最好的辦法是:

    0熱度

    1回答

    我有一個問題得出了下面的代碼的內存模型圖: 在給定的答案在這裏: 我的問題是,爲什麼是下一個存儲在框中的值,而數據(11和5)的值指向框外。我想這是因爲它是一個空值,但是如果是這樣的話是什麼原因?