java-memory-model

    8熱度

    5回答

    我想寫一個簡單的線程安全的類,可以用來設置或獲取一個整數值。 最簡單的方法是使用同步關鍵字: public class MyIntegerHolder { private Integer value; synchronized public Integer getValue() { return value; } synchronized

    11熱度

    4回答

    我試圖理解爲什麼這個例子是一個正確的同步程序: a - volatile Thread1: x=a Thread2: a=5 因爲有衝突的訪問(有一個寫和讀),所以在每一個順序一致性的執行必須是之前發生關係訪問之間。 假設順序執行的一個: 1. x=a 2. a=5 是1之前發生2,爲什麼呢?

    8熱度

    2回答

    從書Java併發的安全出版物中的做法: 要安全地發佈對象,無論是 參考對象和 對象的狀態必須進行其他線程同時可見到 。甲 正確構造的對象可以是 安全地發佈: 初始化從靜態初始化 存儲對它的引用到易失性字段或的AtomicReference 存儲一個對象引用參考它到一個正確構建的最終字段 對象 St或者將其引用到由鎖定適當保護的字段中。 我的問題是: 有什麼要點2和3之間的區別?我對volatile

    1熱度

    3回答

    我有一個使用jruby 1.7的rails 3應用程序,我試圖在本地開發環境中使用rails控制檯(OS X 10.8與JDK 7)在需要大量內存的情況下。我運行軌道控制檯如下: jruby -J-Xms1024m -J-Xmx4096m -J-XX:+UseConcMarkSweepGC -J-XX:+CMSIncrementalMode -S rails c samuel_hml 然後我用導軌

    1熱度

    1回答

    當wesbpher應用服務器正在運行時。它基本上是運行一個JVM。現在,如果我在WAS上部署兩個EAR項目,這兩個EARS是否共享相同的JVM。是的,我猜。 但是接下來我的問題變成這兩個EAR是否也共享相同的堆空間?我的猜測是否定的,但這可能如何?一個JVM將只提供一個堆,對吧? 爲了簡化,讓我們說只有一個WAS ....沒有節點和簇。

    2熱度

    2回答

    多次讀取同一個索引時,JVM能夠優化數組讀取嗎?考慮以下內容: public static void foo(int[] array) { for (int i=0; i<array.length; i++) { int value1 = array[i]; ... int value2 = array[i]; ... }

    3熱度

    2回答

    我正在解決this問題。它需要50000字節的內存限制。所以如果我分配一個尺寸爲1000 X 1000的二維數組,它不應該超過內存邊界嗎? PS:我看到this解決問題,程序員已經分配了一個大小爲m X m的二維數組。如果m等於1000,那麼我認爲內存限制會被超過。但是,codechef已經接受了他的解決方案。 是否有codechef編譯器的錯誤機制,或者我錯過了什麼?

    2熱度

    2回答

    在某些鏈接中,給出了同步塊內的代碼重新排序是可能的,而其他一些站點則告訴不可能。請舉例說明在使用同步的情況下代碼重排的實際情況?

    2熱度

    1回答

    我是一個新的android開發。我需要知道最大內存大小的堆棧中在安卓 ,我想知道有多少活動Android應用程序的可以存儲在堆棧中 感謝

    38熱度

    1回答

    在Java中的併發實踐中,我們多次被告知,我們程序的指令可以由編譯器,JVM在運行時,甚至是處理器。所以我們應該假設執行的程序不會按照我們在源代碼中指定的順序執行完全相同的順序。 然而,討論Java存儲器模型的最後一章提供了一個列表發生在之前的規則,指示JVM保留哪些指令排序。首先這些規則是:「程序順序規則主題中的每個動作,後來進來的程序以便線程的每一個動作之前發生」 我相信「程序順序」是指源代碼