0
点赞
收藏
分享

微信扫一扫

多线程进阶(上)

玉新行者 2022-04-01 阅读 42
java

目录

一.常见的锁策略

二.CAS

三.synchronized的优化


一.常见的锁策略

1.乐观锁和悲观锁

2.读写锁vs普通的互斥锁

3.重量级锁vs轻量级锁(和上面的乐观锁和悲观锁有一定重叠)

4.挂机等待锁vs自旋锁

5.公平锁vs非公平锁

6.可重入锁vs不可重入锁

二.CAS

import java.util.concurrent.atomic.AtomicInteger;
public class Demo27 {
    public static void main(String[] args) throws InterruptedException {
        AtomicInteger count = new AtomicInteger(0);//原子类,初始化一个0
        Thread t1 = new Thread(()->{
            for (int i = 0; i < 500; i++) {
                count.getAndIncrement();//这个操作先后党羽num++

            }
        });
        Thread t2 = new Thread(()->{
            for (int i = 0; i < 500; i++) {
                count.getAndIncrement();//这个操作先后党羽num++

            }
        });
        t1.start();
        t2.start();
        t1.join();
        t2.join();
        System.out.println(count.get());//通过get方法获得到原子类内部的值
    }
}

 

三.synchronized的优化

举报

相关推荐

0 条评论