5.并发工具和执行器(Concurrency Utilities and Executors)5.1 并发工具介绍
2017-10-14 17:00
239 查看
5.1并发工具介绍
java简单的线程可以满足你去创建多线程的应用,相对单线程来说,java的简单线程的接口应用还是有一定的代表性的。可是那些简单的应用却有如下的问题:java的简单并发工具应用经常不能够被正确使用,如synchronized和wait()/notify()的工具。这些不正确的工具使用,或说早期的工具会用,将会导致线程间的竞争的现象中出现如下的问题:线程饥饿、死锁和其它的危险情况。这样的问题是很难被发现和打印出来的。
太多依赖于synchronized关键字,将会导致性能问题,甚至影响到了可测试性。这些重要的问题将会在注重线程的系统中更为常见,像互联网的系统。
开发者经常需要更高的线程应用,所就会自己构造线程池和信息间的调用。因为这些的构造并不会包含java的简单的线程接口提供。开发自己构造线程池和信息间的调用将面临的问题是耗时,和有时候难以控制的错误出现。
为了去解决以上提到的问题,Java5构造了并发的工具,像线程池和阻塞队列,使用这些并发的工具可以走到高效和可扩展的效果。这个高性能的线程工具在如下的包中:
java.util.concurrent:这个工具经常用在并发的应用中,如executor(执行器)。
java.util.concurrent.atomic:这个工具类在单一的变量中,提供自由锁和线程安全的应用。
java.util.concurrent.locks:这个工具的风格是提供等待(wait)和锁(lock)的状态。(一个对象让线程执行等待状态,直到它的状态被唤醒,那么它就可以执行了
相对于java的基础控制器——sychronization来说,这个工具会更加好表现和灵活。
对于这些并发工具来说,我们也要介绍一下nanoTime()的方法,这个方法属于java.lang.System的类中,它可以让你通过使用纳秒的粒度来相对测试程序和运行。
并发工具可以分类为:executors、synchronizers、锁框架等。
相关文章推荐
- JAVA CONCURRENCY EXECUTORS 介绍Java并发处理线程池
- 线程并发工具--线程执行器
- code4.2 /Developer/Applications/Utilities中各种工具介绍及用法(不断更新中)
- [在windows上使用Unix工具]SUA+Interix+SFU+Utilities and SDK for UNIX-based Applications
- SwingUtilities中invokeLater和invokeAndWait的介绍
- sshutil工具介绍:一个跨机器的脚本执行器
- ORM工具介绍 NHibernate, EntitySpaces, and LLBLGen Pro 功能分析
- 数据并发性和一致性介绍--Data Concurrency and Consistency
- 网站并发测试工具介绍
- [Java并发包学习二]Executors介绍
- [Java并发包学习二]Executors介绍
- PHP的压力测试工具ab.exe 和mpm介绍提高并发数
- 4 ways to do concurrency in Java: Threads, Executors, ForkJoin and Actors
- 并发与并行(concurrency and parallelism)的思考理解
- [Java并发包学习二]Executors介绍
- [在windows上使用Unix工具]SUA+Interix+SFU+Utilities and SDK for UNIX-based Applications
- 8. 额外的并发实用程序(Additional Concurrency Utilities)
- Java Threads and the Concurrency Utilities 《读书笔记》
- [Java并发包学习二]Executors介绍
- PHP的压力测试工具ab.exe 和mpm介绍提高并发数