加锁方式:
使用关键字 synchronized
1)给方法直接加上synchronized关键字,此时进入方法就会自动加锁,离开方法就会自动解锁
2)当一个线程加锁成功的时候,若其他线程尝试加锁就会触发阻塞等待,此时线程就处于Blocked状态
//通过锁synchronized使用两个线程对同一个变量,各自自增5W次 class Counter1{ public int count; synchronized public void increase(){ count++; } } public class Demo06 { private static Counter1 c = new Counter1(); public static void main(String[] args) throws InterruptedException { Thread t1 = new Thread(()->{ for (int i = 0; i < 50000; i++) { c.increase(); } }); Thread t2 = new Thread(()->{ for (int i = 0; i < 50000; i++) { c.increase(); } }); t1.start(); t2.start(); t1.join(); t2.join(); System.out.println(c.count); } } 100000 Process finished with exit code 0