多线程同步方法

被刻印的时光 ゝ 提交于 2020-01-13 02:17:53

当一个方法被关键字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;
    }
    
    
}

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!