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