java synchronized 示例_用示例说明synchronized

一 .简单介绍synchronized

关键字 synchronized可以在多线程并发中使用,保证同步。

非常重要的一点,保证线程安全的三个特性:原子性、可见性、有序性。而synchronized可以保证原子性和可见性。

synchronized主要有3种用法:

(1)修饰普通方法:作用于实例对象

(2)修饰静态方法:作用于类对象

(3)修饰代码块:可以指定作用的对象

二. 用Demo说明synchronized主要的用法

1.模拟多线程环境

Thread thread = new Thread(runnable); // runnable里面做操作

thread.start(); // 用Thread才能模拟

基本来说,synchronized修饰一个方法,多线程调用这个方法的时候,肯定会同步,这个大家都知道,就不用写Demo来说明了

2.多个普通方法使用synchronized 修饰(示例1)

假设有两个方法

(1)一个方法用synchronized修饰,一个不用

Thread thread = new Thread(new Runnable() {

@Override

public void run() {

test.one("AA");

}

});

thread.start();

test.two();

public synchronized void one(String tag){

for (i

一 .简单介绍synchronized 关键字 synchronized可以在多线程并发中使用,保证同步。 非常重要的一点,保证线程安全的三个特性:原子性、可见性、有序性。而synchronized可以保证原子性和可见性。 synchronized主要有3种用法: (1)修饰普通方法:作用于实例对象 (2)修饰静态方法:作用于类对象 (3)修饰代码块:可以指定作用的对象 二. 用Demo说明synchronized主要的用法 1.模拟多线程环境 Thread thread = new Thread(runnable); // runnable里面做操作 thread.start(); // 用Thread才能模拟 基本来说,synchronized修饰一个方法,多线程调用这个方法的时候,肯定会同步,这个大家都知道,就不用写Demo来说明了 2.多个普通方法使用synchronized 修饰(示例1) 假设有两个方法 (1)一个方法用synchronized修饰,一个不用 Thread thread = new Thread(new Runnable() { @Override public void run() { test.one("AA"); } }); thread.start(); test.two(); public synchronized void one(String tag){ for (i
经验分享 程序员 微信小程序 职场和发展