多线程+并发编程 3

tech2026-03-26  1

递增 模式 LongAdder cas 操作 分段 执行 Sync AtomicLong 多线程 情况 cas 操作

基于cas操作  新类型的锁  ReentrantLock 

synchronized   必须可重入

ReentrantLock  可以替换 synchronized   

AQS 是 cas

新的锁都是AQS   所以新的锁 就是cas

CountDownLatch  多个线程  latch.countDown();     latch.await();  -------进一步执行以下逻辑   

CyclicBarrier  满员发车    barrier.await();

限流 guava RateLimiter 

并发执行

      线程操作

      线程操作

Phaser  

ReadWriteLock 当你在读时 其他线程 写时,不可以 读可以 当你在写时,完全上锁

static Lock readLock = readWriteLock.readLock();

static Lock writeLock = readWriteLock.writeLock();

   

Semaphore s = new Semaphore(2);         同时允许两个线程同时执行 

s.acquire();

 

线程之间 交换数据 

static Exchanger<String> exchanger = new Exchanger<>();

s = exchanger.exchange(s);

 

实战  java  高并发设计  入门   张一鸣  

锁的分类  

       乐观锁  cas  悲观锁sys  自旋锁 cas  读写锁 (排它锁 共享锁)readWriteLock  分段锁 LongAdder currenthashmap

加解锁 LockSupport.park(); LockSupport.unpark(t);

   AQS (CLH) 

volatile   state  1 拿到    0  没有拿到    cas   node线程多列抢不到锁的话  加入队列   head+tail  通过cas  加入队列 

 

最新回复(0)