*所谓同步机制是指两个线程同时操作一个对象,应该保持对象数据的统一性和整体性。
*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){…代码…}