C/C++教程

Synchronized关键字的使用

本文主要是介绍Synchronized关键字的使用,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1、修饰静态方法

public class SynchronizedDemo {
    public static int i=0;
    public synchronized static void accessResource() {
        try {
            i++;
            TimeUnit.SECONDS.sleep(2);
            System.out.println(Thread.currentThread().getName()+"is running:" + i);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {
        for (int i=0;i<5;i++){
            new Thread(SynchronizedDemo::accessResource).start();
        }
    }
}

 

 2.修饰非静态方法:

public class SynchronizedDemo {
    public int i=0;
    public synchronized void accessResource() {
        try {
            i++;
            TimeUnit.SECONDS.sleep(2);
            System.out.println(Thread.currentThread().getName()+"is running:" + i);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {
        SynchronizedDemo synchronizedDemo = new SynchronizedDemo();
        for (int i=0;i<5;i++){
            new Thread(synchronizedDemo::accessResource).start();
        }
    }
}

 

这篇关于Synchronized关键字的使用的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!