當內建類是私有的,若例項化該類與內建類 在乙個包下可以例項化。若不在乙個包下要例項化,需要將內建類改為public
package com.inner;
public class publicclass
public void setage(string age)
public string getaddress()
public void setaddress(string address)
}public string getusername()
public void setusername(string username)
public string getpassword()
public void setpassword(string password)
}package com.test;
import com.inner.publicclass;
import com.inner.publicclass.privateclass;
public class run
}當內建類為靜態內建類時 不需要在使用publicclass.new privateclass() 例項化privateclass 因為靜態變數 靜態內建類都屬於類所有,不屬於物件所有。
物件鎖改變:當開始執行時所有執行緒爭奪同乙個物件鎖,執行緒同步,若兩個執行緒由於所物件的改變,並不是爭奪的同乙個鎖的時候執行緒非同步。
package com.inner;
public class myservice catch(interruptedexception e)}}
}package com.inner;
public class threada extends thread
public void run()
}package com.inner;
public class threadb extends thread
public void run()
}package com.inner;
public class run catch(interruptedexception e)*/
thread2.start();}}
如果不加延時,兩個執行緒幾乎同時執行,爭奪同乙個物件,假若執行緒a拿到了該物件鎖,即使在執行過程中lock="456" lock 改變了,但是執行緒2是等著執行緒a釋放掉「123」的物件鎖,如果加延時,執行緒a先執行,當執行到lock="456"時,執行緒b其實是得到物件「456」的鎖。物件不一樣因此非同步。
類鎖和物件鎖
物件鎖 當乙個物件中有synchronized method或synchronized block的時候呼叫此物件的同步方法或進入其同步區域時,就必須先獲得物件鎖。如果此物件的物件鎖已被其他呼叫者占用,則需要等待此鎖被釋放 同步靜態方法 靜態變數互斥體 由於乙個class不論被例項化多少次,其中的靜...
類鎖和物件鎖
類鎖 和 物件鎖 1.類鎖 先定義這麼乙個類 classt synchronized static methoda 那麼 例項化兩個物件之後 classt a classt b 在這兩個物件呼叫methoda時,第乙個呼叫的會得到classt類的類鎖,第二個呼叫的要等到第乙個呼叫結束後釋放鎖,才能完...
類鎖和物件鎖的詳解
最近在面試中遇到很多關於多執行緒的問題,特別是鎖的應用,現在我就來說說類鎖和物件鎖。物件鎖 synchronized method 和類鎖 static sychronized method 的區別 物件鎖也叫例項鎖,對應synchronized關鍵字,當多個執行緒訪問多個例項時,它們互不干擾,每個...