*所謂同步機制是指兩個執行緒同時操作一個物件,應該保持物件資料的統一性和整體性。
*Java語言中有兩種同步形式,即同步方法和同步程式碼塊。
1,同步方法
同步方法將訪問這個資源的方法都標記為synchronized,這樣在需要呼叫這個方法的執行緒執行完之前,其它呼叫該方法的執行緒都會被阻塞。
synchronized void sum(){…}
synchronized void max(){…}
*建立兩個執行緒的例子
import java.util.logging.Level;
import java.util.logging.Logger;public class SyncThread extends Thread {
private char cha;
public SyncThread(char cha){
this.cha=cha;
}
public void run(){
PrintClass.printch(cha);
System.out.println();
}
public static void main(String[] args){
SyncThread t1=new SyncThread('A');
SyncThread t2=new SyncThread('B');
t1.start();
t2.start();
}
}
class PrintClass{
public static void printch(char cha){
for(int i=0;i<5;i++){
try {
Thread.sleep(1000);
} catch (InterruptedException ex) {
Logger.getLogger(PrintClass.class.getName()).log(Level.SEVERE, null, ex);
}
System.out.print(cha);
}
}
}
*同步塊
Java語言中同步的設定不只應用於同步方法,也可以設定程式的某個程式碼段為同步區域。
語法格式為:
synchronized(someobject){…程式碼…}