原子性,可见性,有序性
happens-before 原则6条
管程:
互斥:临界区,共享资源
同步 条件变量,等待队列
关于活锁中的"谦让":比如释放锁
CopyOnWriteList ,所谓写时复制:
1. 读的时候读原数据
2. 写(全程加锁):原来的数据可能被读,考虑开一个副本再写,然后替换原数据
threadlcoal类:
每个线程拥有变量的备份,避免线程安全
Map<String, LinkedBlockingQueue<Runnable>> stack = afterTransactionOpts.get();
afterTransactionOpts.set(stack);
afterTransactionOpts.get();
原理:
threadlocal 是一个代理工具类,用户使用threadlocal ---> 拿到当前线程 ---->thread. threadLocalMap ---> map.get( threadlocal)
注意threadlocal 与 线程池 一起使用时容易发生内存泄漏,应该手动释放内存(remove )
CountDownLatch和CyclicBarrier:如何让多线程步调一致?
原理: 锁,计数器, 条件变量( wait,signal)
1. 不用多说,计数器(sync的state )
2.