摘要:
ConcurrentHashMap 在涉及到Java多线程开发时,如果我们使用HashMap可能会导致死锁问题,使用HashTable效率低 而ConcurrentHashMap既可以保持同步也可以提高并发效率,所以这个时候ConcurrentHashmap是我们最好的选择 Map Map是数组+链 阅读全文
摘要:
基本不变式 在执行方法之前和之后,队列必须要保持的不变式: 当入队插入新节点之后,队列中有一个 next 域为 null 的(最后)节点 从 head 开始遍历队列,可以访问所有 item 域不为 null 的节点 head 的不变式和可变式 在执行方法之前和之后,head 必须保持的不变式: 所有 阅读全文
摘要:
LockSupport LockSupport.park() 可以用来阻塞当前线程,park是停车的意思,把运行的线程比作行驶的车辆,线程阻塞则相当于汽车停车 该方法还有个变体LockSupport.park(Object blocker),指定线程阻塞的对象blocker,该对象主要用来排查问题 阅读全文
摘要:
效率 线程数特别多的时候 Longadder > Atomic > synchroinzed Longadder内部使用了分段锁 Longadder是LongAccumulator的一种特殊形式 ReentrantLock,synchronized对比 cas vs sync trylock loc 阅读全文