JAVA学习并发编程心得

  近几天工作不是很忙,自己学习了一些并发编程技术。买了两本书《Java并发变成核心方法与框架》和《Java并发编程实战》。其中第一本书看了两遍,第二本正在学习。但在学习过程中,发现第二本并发实战讲的没有第一本详细。但是讲了很多关于并发编程的解决方案。所以推荐,如果初次学习并发编程,看第一本书,有过并发、多线程开发经验的看第二本书。

  看完《Java并发变成核心方法与框架》这本书后,总结了以下几个方法:

一、Semaphore:用来规定使用多少个线程。

二、Exchanger:用来两个线程之间传输数据。

三、CountDownLatch:用来实现多个线程相互等待,等所有线程全部执行完成后,再一起向下进行。(只可使用一次)。线程完成一个,计数减一,直到计数为0,则释放继续向下进行。

四、CyclicBarrier:用来实现多个线程相互等待,等所有线程全部执行完成后,再一起向下进行。(可进行多次,多屏障等待)。线程完成一个,计数减一,直到计数为0,则释放继续向下进行。

五:Phaser:用来实现多个线程相互等待,等所有线程全部执行完成后,再一起向下进行。(可进行多次,多屏障等待)。线程完成一个,计数加一,直到到达指定的计数数,则释放继续向下进行。

六、Executor:用于创建线程池,可重复使用线程,减少系统性能开销。接口为ExecutorService

     1.newcachedThreadPool  :创建无界线程池。

     2.newFixedThreadPool(int):创建有界线程池。

     3.newsingleThreadExecutor():创建单一线程池。

七、ThreadPoolExecutor:用于创建线程池,可重复使用线程,减少系统性能开销。可设置线程池核心线程数、最大线程数、设定多少秒后删除执行完成的线程以及可设置线程使用的队列。

八、Future(Callable,Runnable):Callable用于执行有返回值的方法,Runnable用于执行无返回值的方法。Future用于获取返回值和执行结果。

九、CompletionService:接口CompletionService的功能是以异步的方式一边生产新的任务,一边处理已完成任务的结果,这样可以将执行任务与处理任务分离开来进行处理。使用submit执行任务,使用take取得已完成的任务,并按照完成这些任务的时间顺序处理它们的结果。

十、ScheuledExecutorService:实现定时任务。与线程池功能结合使用。

十一、Fork-Join分治编程:把一个大任务分解成多个小任务,然后再把各个小任务的结果进行汇总。

十二、并发集合框架。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小郄同学

打赏加QQ群教学

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值