在线客服
扫描二维码
下载博学谷APP扫描二维码
关注博学谷微信公众号
并发编程不但能大大提高代码的执行效率,也可以提高用户体验的好感度。Java编程语言中,在JDK的并发包中提供了几个非常实用的并发工具类。其中CountDownL _atch、CyclicBarrier、Semaphore工具类提供了并发编程流程控制的手段,Exchanger工具类则提供了在线线程间的交换数据的手段。下面小编就为大家详细介绍一下这些并发工具类。
CountDownL _atch
CountDownL _atch可以实现线程阻塞,等待其他线程执行完成之后向下执行。在工作中,同时启动多个线程执行多个任务,多个任务执行完成后,返回执行完成的结果也是使用CountDownL _atch实现的。
CyclicBarrier
CyclicBarrier主要的方法就是-一个: await()。 await() 方法每被调用一次,计数便会减少1,并阻塞住当前线程。当计数减至0时,阻塞解除,所有在此CyclicBarrier上面阻塞的线程开始运行。在这之后,如果再次调用.await()方法,计数就又会变成N-1,新-轮重新开始,这便是Cyclic的含义所在。
Semaphore
Semaphore的功能比较好理解,就是通过构造函数设定一个数量的许可,然后通过acquire方法获得许可,release 方法释放许可。它还有tryAcquire和acquireUniterruptibly方法,可以根据自己的需要选择。Semaphore是只允许定数量的线程同时执行一段任务。
Exchanger
Exchanger(交换者)是一个用于线程间协作的工具类。Exchanger用于进行线程间的数据交换。它提供一个同步点,在这个同步点两个线程可以交换彼此的数据。这两个线程通过exchange方法交换数据, 如果第一个线程先执行exchange方法,它会一直等待第二个线程也执行exchange,当两个线程都到达同步点时,这两个线程就可以交换数据,将本线程生产出来的数据传递给对方。因此使用Exchanger的重点是成对的线程使用exchange()方法,当有一对线程达到了同步点,就会进行交换数据。因此该工具类的线程对象是成对的。
如何学习Java并发工具类?
在掌握Java开发知识的基础上,并发工具类很容易掌握。如果大家在实际应用中,确实遇到无法解决的并发编程原理问题。最快捷的方式往往就是通过身边的同学、老师进行咨询,也可以通过博学谷官网学习《Java并发编程原理精讲》课程学习。本课程主要针对有技术提升需求、提升自己知识储备,想通过掌握多线程相关知识成为架构师或者进入大厂的中高级程序员。想了解更多关于本课程的介绍,可以直接通过https://www.boxuegu.com/promote/detail-1483.html进一步了解。
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
2019年Java开发程序员的就业前景怎么样?
2019年Java开发程序员的就业前景怎么样?Java就业前景分析,Java发展方向大致分为两类:一是成为管理人员,例如产品研发经理,技术经理,项目经理等;二是继续他的技术工作之路,成为高级软件工程师、需求工程师等。Java人才社会需求量大,根据IDC的统计数字,在所有软件开发类人才的需求中,对Java工程师的需求达倒全部需求量的60%~70%。
8655
2019-05-09 12:18:30
浅析Java并发工具类在AQS实现
众所周知,AQS是一个Java提高的底层同步工具类。本文就AQS的资源共享方式,state的作用,自定义同步器的方法,CountDownLatch,Semaphore,Semaphore和RateLimiter的区别,CyclicBarrier几方面来为大家浅析Java并发工具类。
7668
2019-08-05 20:07:43
如何学Java语言从入门到精通
如何学Java语言从入门到精通?学编程一定要动手,遇到bug自己去查找解决方法,在学习过程中遇到麻烦,除了学会查找资料以外还要大胆提问,在解决问题的过程中才能更快的提升编程能力。
5272
2019-11-22 11:33:44
Java基础学习之File类笔记整理
在小白入门Java基础的学习道路上,File类是必须要接触的一个知识点。为了方便大家学习并应用File类,本文为大家整理汇总了File类的相关知识点,内容包括File类概述和构造方法、File类创建功能、File类判断和获取功能和File类删除功能。下面我们一起来梳理一遍笔记的内容吧!
4896
2019-12-11 16:25:25
Java程序员必读的基础知识书单推荐
Java程序员必读的基础知识书单推荐,学习过程中书本是比较好的学习工具,与音频和视频相比纸质书籍有一个巨大的优势,不理解时你可以任意反复阅读某一段,或快速复习刚刚阅读过的内容,甚至是只看某一页面的某个段落,方便做笔记。
2957
2022-04-13 14:17:29