并发总结
作者:
小鱼游儿 | 来源:发表于
2016-08-29 19:45 被阅读21次
并发包
-
ConcurrentHashMap(类HashMap的并发类)
-
CopyOnWriteArrayList(在读多写少的并发场景下,比ArrayList是更好的选择)
-
CopyOnWriteArraySet(类ArraySet的并发类)
-
ArrayBlockingQueue(并发队列)
-
AtomicInteger(cpu的CAS原语实现,获得递增id并发场景使用这个)
-
ThreadPoolEXecutor(线程池对象,执行任务用的,有各种执行策略可选)
-
Executors(提供不同类型策略的ThreadPoolEXecutor创建方法)
-
FutureTask(用于调用多次只执行一次任务的连接池场景中)
-
Semaphore(控制某资源同时被访问的个数的类)
-
CountDownLatch(控制多个线程同时开始某动作的类)
-
CyclicBarrier(await数量到达的设定值后,才继续往下执行)
-
ReentrantLock(控制并发资源的类,与synchronized语法到达的效果一致)
-
Condition(并发接口,实现类有ReentrantLock,以便用户在同一个锁的情况下可以根据不同的情况执行等待或唤醒动作)
-
ReentrantReadWriteLock(该类读,写锁分离。不同于ReentrantLock一把锁)
并发约束
- 同步访问共享的可变数据。同步的范围应当是读与写。
- 避免过度同步。同步会带来性能开销
- Executor和task优先于线程
- 并发工具优先于wait和notify
- 线程安全性的文档化。
- 慎用延迟初始化。
- 不要依赖于线程调用器。不然程序的移植性会很差。
- 避免使用线程组
推荐文章
从一个简单的Java单例示例谈谈并发
我是一个线程
书:JAVA多线程设计模式
本文标题:并发总结
本文链接:https://www.haomeiwen.com/subject/cuffettx.html
网友评论