并发注意事项(2)并发工具优先于wait和notify
来源:互联网 发布:java json转string 编辑:程序博客网 时间:2024/05/21 09:46
自jdk1.5以后java提供了更为高级的并发工具,他们可以完成wait和notify所能完成的工作。
在java.util.conturrent包中更高级的并发工具分成三类:Executor Framework,并发集合(Concurrent Collection)以及同步器(Synchronizer).
Executor Framework是线程池的调度,即调用线程池的静态方法:
ExecutorService executor = Executor.newSingleThreadExcecutor();
并发集合,既是在concurrent包中增加的一些并发的集合,例如:ConcurrentMap,其扩展了Map接口,并添加了一些方法。
ConcurrentMap除了提供了卓越的并发性外,速度也是非常快的,因此除非不得已,我们应当优先使用ConcurrentHashMap而不是Collections.synchronizedMap或者Hashtable.t
同步器是使一个线程能够等待另一个线程的对象我们经常用的同步器有CountDownLatch,它可下面是一个示例:
下面还有一个示例,是用CountDownLatch代替wait,notify的:
上面的方法中用了三个CountDownLatch的对象,进行交替唤醒,先用ready执行了 System.nanoTime(),再用start执行了action.run(),再用done执行了
System.nonaTime()-startNanos.
简而言之,我们应该,优先使用java.util.concurrent包中提供的更高级的语言来代替wait,notify.
- 并发注意事项(2)并发工具优先于wait和notify
- 并发编程复习(四):wait和notify解析
- Java并发编程:wait()和notify()/notifyAll()
- 并发之notify、wait笔记
- java并发编程---wait、notify
- 多线程并发中的简单使用wait和notify的方法
- Java并发编程系列之八:wait()、notify()和notifyAll()
- Java并发之synchronized机制(wait和notify)
- java并发中的wait(),notify(),notifyAll()方法和Condition接口
- 并发编程复习(六):使用wait和notify模拟阻塞队列
- Java并发编程(详解wait(), notify(),sleep())
- java并发(一)wait,notify的使用
- java并发(一)wait,notify的使用
- 并发学习笔记(三):join与wait/notify
- java并发(一)wait,notify的使用
- Java并发编程 线程通信wait notify
- 并发编程-wait,notify实现队列功能
- notify 和wait 2
- DELPHI 利用WINRRA 实现压缩解压
- Android安全开发之Provider组件安全
- POJ3264 Balanced Lineup(线段树静态)
- ArrayBlockingQueue和LinkedBlockingQueue的使用
- android6.0 framework修改使用两个声卡
- 并发注意事项(2)并发工具优先于wait和notify
- 学生信息管理系统优化
- android eclipse基础开发环境搭建--最新安卓6.0 SDK
- 二叉树的分层打印(三)
- KMP模式匹配算法
- iOS开发中App启动页和应用缩略图标的两种设置方式
- Qt MySQL驱动安装
- hightcharts使用总结
- Java NIO系列教程(十) Java NIO DatagramChannel