1.synchronized的场景
synchronized是在并发下对方法可以实现加锁的效果,保证只有一个线程能够进入方法,那么一个类下有两个静态方法都用synchronized修饰的情况下,两个线程分别调用不同的方法是否会阻塞呢?
有三种场景:
1. 调用的方法都为同步的普通方法
2. 调用的方法有一个是静态同步,一个为普通同步方法
3. 调用的方法都为静态同步方法
下面我会依不同的场景用代码来展示运行的效果
1.1调用的方法都为同步的普通方法
package com.xncoding.pos.test;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class TheadTest {
public synchronized void say1() {
try {
//synchronized(o) {
System.out.println("say1111111111");
Thread.sleep(10000);
//}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public synchronized void say2() {
try {
// synchronized(o1) {
System.out.println("say222222222222222222");
Thread.sleep(2000);
// }
} catch (InterruptedException e) {
// TODO Auto-generated catc