首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
JDK提供的用于并发编程的同步器有哪些?
[不定项选择题]
JDK提供的用于并发编程的同步器有哪些?
Semaphore
CyclicBarrier
CountDownLatch
Counter
查看答案及解析
添加笔记
邀请回答
收藏(9180)
分享
34个回答
添加回答
223
推荐
牛客-007
答案:ABC
A,Java 并发库 的Semaphore 可以很轻松完成信号量控制,Semaphore可以控制某个资源可被同时访问的个数,通过 acquire() 获取一个许可,如果没有就等待,而 release() 释放一个许可。
B,CyclicBarrier 主要的方法就是一个:await()。await() 方法没被调用一次,计数便会减少1,并阻塞住当前线程。当计数减至0时,阻塞解除,所有在此 CyclicBarrier 上面阻塞的线程开始运行。
C,直译过来就是倒计数(CountDown)门闩(Latch)。倒计数不用说,门闩的意思顾名思义就是阻止前进。在这里就是指 CountDownLatch.await() 方法在倒计数为0之前会阻塞当前线程。
D,Counter不是并发编程的同步器
编辑于 2015-01-27 14:44:11
回复(22)
63
1988coding
A. semaphore:信号量。用于表示共享资源数量。用acquire()获取资源,用release()释放资源。
B. CyclicBarrier 线程到达屏障后等待,当一组线程都到达屏障后才一起恢复执行
C. CountDownLatch 初始时给定一个值,每次调用countDown值减1,当值为0时阻塞的线程恢复执行
D. 不知道是啥。。。。反正不是同步器
发表于 2017-09-10 13:40:21
回复(18)
40
ridikuius
答案:ABC
同步器是一些使线程能够等待另一个线程的对象,允许它们协调动作。最常用的同步器是CountDownLatch和Semaphore,不常用的是Barrier 和Exchanger
发表于 2015-10-02 23:16:52
回复(1)
30
a_fighting_bear
有没有谁和我一样并不知道同步器是啥的
发表于 2017-11-13 11:48:23
回复(0)
16
奶嘴超人丶
Core Java I p696
编辑于 2019-02-21 11:58:32
回复(0)
8
MyGoodHelper
ABC
Semaphore, 它负责协调各个线程, 以保证它们能够正确、合理的使用公共资源。
CyclicBarrier的线程同步障碍辅助工具类(它允许一组线程互相等待,直到到达某个公共屏障点)。
发表于 2015-01-26 19:47:32
回复(0)
7
牛客103459723号
CountDownLatch 与
C
yclicBarrier
的区别
CountDownLatch简单的说就是一个线程等待,直到他所等待的其他线程都执行完成并且调用countDown()方法发出通知后,当前线程才可以继续执行。
cyclicBarrier是所有线程都进行等待,直到所有线程都准备好进入await()方法之后,所有线程同时开始执行!
CountDownLatch的计数器只能使用一次。而CyclicBarrier的计数器可以使用reset() 方法重置。所以CyclicBarrier能处理更为复杂的业务场景,比如如果计算发生错误,可以重置计数器,并让线程们重新执行一次。
CyclicBarrier还提供其他有用的方法,比如getNumberWaiting方法可以获得CyclicBarrier阻塞的线程数量。isBroken方法用来知道阻塞的线程是否被中断。如果被中断返回true,否则返回false。
发表于 2018-07-10 23:44:09
回复(0)
7
半纸流年
D Counter是计数器
发表于 2015-11-24 22:18:09
回复(0)
6
小海胆胆
A,B,C
发表于 2014-12-29 01:28:29
回复(0)
5
toshen
什么东西,看还看不懂勒,感觉学了个假的java。
发表于 2021-08-13 23:53:08
回复(2)
4
甜瓜很努力
同步器是一些使线程能够等待另一个线程的对象,允许它们协调动作,最常用的同步器是
CountDownLatch
和Semaphore,不常用的是Barrier 和Exchanger
发表于 2022-03-23 11:02:30
回复(0)
4
牛客802251667号
A. semaphore:信号量。用于表示共享资源数 量。用acquire()获取资源,用release()释放资 源。 B. CyclicBarrier 线程到达屏障后等待,当一组 线程都到达屏障后才一起恢复执行 C. CountDownLatch 初始时给定一个值,每次 调用countDown值减1,当值为0时阻塞的线程恢 复执行
发表于 2022-02-28 22:23:52
回复(0)
4
老实敦厚的彦祖
完美错过正确答案。。
发表于 2017-09-06 15:32:50
回复(1)
3
牛客59880486号
同步器是一些使线程能够等待另一个线程的对象,允许它们协调动作。最常用的同步器是CountDownLatch和Semaphore,不常用的是Barrier 和Exchanger
发表于 2021-11-03 22:48:08
回复(0)
2
牛客-凌凌漆
Semaphore:信号量,表示可以共享资源数量;用acquire()获取资源,用release()释放资源。
CyclicBarrier主要方法就是一个:await()方法被调用一次,计数减少1,并且阻塞当前线程。当计数减至0,阻塞解除,CyclicBarrier阻塞的线程开始运行
CountDown反着计数,到0之前会阻塞当前线程
Counter不是并发编程的同步器
发表于 2018-09-09 20:32:32
回复(0)
1
Kenneth_皓
信号量可以用来限制对某个共享资源进行访问的线程的数量。在对资源进行访问之前,线程必须从得到信号量的许可(调用Semaphore对象的acquire()方法);在完成对资源的访问后,线程必须向信号量归还许可(调用Semaphore对象的release()方法)。
发表于 2017-10-06 19:36:05
回复(0)
0
白蓝鸽
24年学java
发表于 2024-03-28 11:33:37
回复(0)
0
jjkinggg
semaphore信号量,用于表示共享资源数量,用acquire获取资源,用release释放资源 cyclicbarrier 线程达到屏障后等待,当一组线程达到屏障后都打到了之后回复执行 countdowlatch 初始化给一个值,每次地调用countdown减一,当值为0时,恢复执行
编辑于 2024-02-16 23:09:26
回复(0)
0
牛客130365080号
并发包没有Counter
发表于 2023-09-17 21:14:41
回复(0)
0
Alance_
Semaphore 是初始化固定数量的令牌拿到令牌就能执行,执行完成就放令牌,下一个线程就能执行。本质上是一个限流器。
CyclicBarrier 和
CountDownLatch 是先执行完成的线程 会拿到令牌,然后阻塞等待,直到所有的线程都拿到令牌才能继续执行。这才是同步器。
编辑于 2023-03-02 10:43:42
回复(0)
0
虎三哥
同步器是一些使线程能够等待另一个线程的对象,允许它们协调动作。最常用的同步器是CountDownLatch和Semaphore,不常用的是Barrier 和Exchanger
发表于 2022-09-25 08:23:39
回复(0)
这道题你会答吗?花几分钟告诉大家答案吧!
提交观点
问题信息
Java
迅雷
并发
上传者:
虫子吃大米
难度:
34条回答
9180收藏
17228浏览
热门推荐
相关试题
Linux命令行下如何查找列出/u...
迅雷
Linux
评论
(26)
怎样修改linux的时区,在不重启...
迅雷
Linux
评论
(4)
无锁化编程有哪些常见方法?
阿里巴巴
并发
评论
(39)
来自
阿里巴巴2015实习生笔试题
分页系统的逻辑地址结构是一维的,分...
操作系统
评论
(1)
你说在销售运营这个岗位上会涉及到一...
评论
(1)
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题
A,Java 并发库 的Semaphore 可以很轻松完成信号量控制,Semaphore可以控制某个资源可被同时访问的个数,通过 acquire() 获取一个许可,如果没有就等待,而 release() 释放一个许可。
B,CyclicBarrier 主要的方法就是一个:await()。await() 方法没被调用一次,计数便会减少1,并阻塞住当前线程。当计数减至0时,阻塞解除,所有在此 CyclicBarrier 上面阻塞的线程开始运行。
C,直译过来就是倒计数(CountDown)门闩(Latch)。倒计数不用说,门闩的意思顾名思义就是阻止前进。在这里就是指 CountDownLatch.await() 方法在倒计数为0之前会阻塞当前线程。
D,Counter不是并发编程的同步器