摘要:
ConcurrentHashMap小结 ConcurrentHashMap与HashTable 都是线程安全的. HashTable:对get和put相关操作设加锁synchronized,相当于给整个哈希表加锁,多线程访问时只有一个线程可以访问和操作数据,其他线程阻塞,性能差. Concurren 阅读全文
摘要:
JUC原子类 CAS 实现线程安全的方法: 互斥同步:synchronized,Lock. 非阻塞同步:CAS,Atomic. 无同步方法:栈封闭,ThreadLocal,可重入代码 CAS介绍 CAS(Compare-And-Swap):对比并交换,是一个原子操作. 先比较旧值是否发生变化,若没有 阅读全文
摘要:
BlockingQueue详解 简介 BlockingQueue接口表示一个线程安全的放入和提取实例的队列. BlockingQueue和BlockingDequeue BlockingQueue 常用于一个线程生产对象,一个线程消费对象. 只从一端放入对象,从另外一端取出对象. 一个线程持续生产对 阅读全文
摘要:
ArrayList小结 ArrayList概述 特点: 基于数组,是动态可自动扩容的。 不是线程安全的。多线程可使用Collections.synchronizedList(List l)函数返回一个线程安全的ArrayList类,或使用JUC的CopyOnWriteArrayList类。 实现Se 阅读全文
摘要:
AQS详解 AQS:提供原子式管理同步状态,阻塞和唤醒线程功能以及队列模型。 ReentrantLock 特性 为可重入锁,一个线程能够对一个临界资源重复加锁。 通过AQS实现锁机制。 支持响应中断,超时和尝试获取锁。 必须使用unlock()释放锁。 有公平锁和非公平锁。 可以关联多个条件队列。 阅读全文