多线程同步方法

当一个方法被关键字synchronized声明后,就只允许一个线程来操作这个方法。也就是指一次只能让一个线程运行。

package com.zwq.impl;

public class SynThread {

    public static void main(String[] args) {
        //创建SynThreadTest类的实例对象
        SynThreadTest  synThreadTest = new SynThreadTest();
        //创建线程并启动线程
        new Thread(synThreadTest).start();
        System.out.println(synThreadTest.call());
        
    }
}
class SynThreadTest implements Runnable{
    private int x;
    private int y;
    //定义SynThreadTest的同步方法
    //重写Runnable接口的run()方法,声明synchronized
    public synchronized void run() {
        for(int i=0;i<5;i++){
            x++;
            y++;
            try {
                Thread.sleep(100);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            System.out.println(Thread.currentThread().getName()+":x="+x+",y="+y+"\t"+i);
        }
    }
    //自定义方法,并声明synchrocized
    public synchronized String call(){
        String name = Thread.currentThread().getName();
        return "hellow "+name;
    }
    
    
}

 

posted @ 2013-03-15 16:47  ZOWIE  阅读(357)  评论(0编辑  收藏  举报