首页
题库
面试
求职
学习
竞赛
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收藏
17229浏览
热门推荐
相关试题
无锁化编程有哪些常见方法?
阿里巴巴
并发
评论
(39)
来自
阿里巴巴2015实习生笔试题
怎样修改linux的时区,在不重启...
迅雷
Linux
评论
(4)
Linux命令行下如何查找列出/u...
迅雷
Linux
评论
(26)
分页系统的逻辑地址结构是一维的,分...
操作系统
评论
(1)
你说在销售运营这个岗位上会涉及到一...
评论
(1)
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题
A,Java 并发库 的Semaphore 可以很轻松完成信号量控制,Semaphore可以控制某个资源可被同时访问的个数,通过 acquire() 获取一个许可,如果没有就等待,而 release() 释放一个许可。
B,CyclicBarrier 主要的方法就是一个:await()。await() 方法没被调用一次,计数便会减少1,并阻塞住当前线程。当计数减至0时,阻塞解除,所有在此 CyclicBarrier 上面阻塞的线程开始运行。
C,直译过来就是倒计数(CountDown)门闩(Latch)。倒计数不用说,门闩的意思顾名思义就是阻止前进。在这里就是指 CountDownLatch.await() 方法在倒计数为0之前会阻塞当前线程。
D,Counter不是并发编程的同步器