多個虛擬機器如何做同步問題????

sim114發表於2003-02-13

http://www.jdon.com:81/jive/thread.jsp?forum=121&thread=4653



banq
據我理解,區域性變數包含兩種:
一個類似int 之類的原始型變數
二是String之類的物件型變數;

如果是後者,容易發生deadlock,原因:
1執行緒正在佔據A資源,等待B資源的釋放;
2執行緒正在佔據B資源,等待A資源的釋放;



Danial
剛登陸進來瀏覽了一下,
我覺得這不是問題呀?區域性變數不存在同步的問題。進入一個函式就分配壓棧之類的, 出來就釋放了,


同步問題:

public class xx{

  public int fieldsX = 4;//inputInt 成員變數完全沒問題
  public static int fieldsX2 = 4;//需要同步

  public Factory fieldsF = new Factory();//fieldsF 成員變數完全沒問題
  public static Factory fieldsF2;//需要同步

  static{
    fieldsF2 = new Factory();
  }


  public Factory yy(Factory inputFactory,int inputInt){
  //inputInt 原始型變數完全沒問題, 
  //inputFactory 怎麼說呢,傳的是引用,
  //如果改變它(inputFactory)的成員變數 需要同步,否則就不用了
    int intLocal = 3;//完全沒問題
    Factory factoryLocal;
    if(){
      factoryLocal = new Factory();
        factoryLocal.mm = 23;//完全沒問題
      return factoryLocal;
    }
    else{
      factoryLocal = inputFactory;
      synchronized(factoryLocal){
        factoryLocal.mm = 23;//需要同步
      }
      return factoryLocal;
    }
  }

}


不知以上說得對否?

一個問題:如果容器啟動了多個虛擬機器,很可能的,
如何做到 static成員變數 的同步問題?共享記憶體?
不管它,讓容器自己管理?

相關文章