原子性,可见性,有序性

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.

posted on 2025-01-15 22:54  towboat  阅读(7)  评论(0)    收藏  举报