AQS-AbstractQueuedSynchronizer
维护一个volatile的state
state控制一个存储Thread的双向链表。向链表里添加thread是通过compareAndsetState
ThreadLocal
set
Thread.currendtThread.map(ThreadLocal,person)
设到了当前线程的map里
线程操作自己的副本,不共享
应用Spring的声明式事务,保证同一个Connection
AQS是一种提供了原子式管理同步状态、阻塞和唤醒线程功能以及队列模型的简单框架
ReentrantLock-可重入锁
lock.lock()->锁定,lock.unlock()->解锁
lock.tryLock(time,TimeUnit.type)->time内尝试获得锁,获取不到放弃
lock.lockInterruptibly()->可以对interrupt()方法做出响应,可以被打断加锁
new ReentrantLock(true);->参数为true表示公平锁
可以添加Condition,精确指定哪个线程被唤醒
CyclicBarrier-循环栅栏
parties->满xx发车
barrier.await()->等待
复杂操作:1.数据库,2.网络,3.文件<br>并发操作:-线程-操作 线程-操作
cpu
yeild方法,让出一下cpu
join,加入线程。A jion B,等B执行完再执行A
sleep,让给别的线程执行
线程的6种状态
Runnable
调用start(),交给操作系统,由线程调度器执行
TimeWaiting
Thread.sleep(time),o.wait(time),t.join(time),lockSupport.parkNanos(),lockSupport.parkUntil()
时间结束
Waiting
o.wait(),t.join,lockSupport.park
o.notify,o.notifyAll,lockSupport.unpark
子主题
Phaser-多阶段栅栏1.7
遗传算法
phaser.bulkRegister()->注册数量
phaser.arriveAndAwaitAdvance();->到达后等待往下走
重新onAdvanc()->前进
phaser.arriveAndDeregister()