#大学#Java多线程学习02(线程同步)

*所谓同步机制是指两个线程同时操作一个对象,应该保持对象数据的统一性和整体性。

*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){…代码…}

 

posted on 2010-12-28 12:13  Ron Ngai  阅读(206)  评论(0编辑  收藏  举报

导航