Java基础--Java并发总结

来源:互联网 发布:张艺兴而立24淘宝 编辑:程序博客网 时间:2024/05/17 04:44

Java并发总结

无论使用哪种程序设计语言,就使用API层面上,并发无非三个方面:线程创建、线程同步、线程通信。针对不同的应用场景,API对这三种需求提供了不同的实现方式,现就这三个方面进行总结,总结的所有内容,在之前博文的『Java基础--并发编程基础』系列和『Java基础--并发实用工具』系列中都有详细涉及,详细的使用方式,请参考之前的系列博文,这里做总结是为了有一个大致的大局观。

线程创建

可以分为并行编程和并发编程两种,而并发编程又分为使用执行器(线程池)和不使用执行器两种,使用执行器又分为有返回值并发和无返回值并发两种,不使用执行器(最最基本)又分为实现Runnable接口和扩展Thread类两种。如下图所示:

线程同步

线程同步总共分为三大类:Java内置同步特性,即基于内置监视器的同步块和同步语句;Java并发包中的五个同步器,即Semaphore,CountDownLatch,Exchanger,CyclicBarrier,Phaser;Java并发包中的锁包提供的锁,即ReentrantLock,ReentrantReadWriteLock。如下图所示:

线程通信

因为线程通信是基于线程同步的,如果两个线程连基本的同步也没有,更不用谈通信了。那么,线程通信也是分三大类:Java内置同步对应的通信方式,使用Object类库的wait方法和notify方法;Java并发包的同步器的自带的通信方法;Java并发包中锁对应的通信方式,即Condition对象的await方法和signal方法,是一种强大的通信方式。如下图所示:
1 0