社区
Java SE
帖子详情
多线程问题
Biglonwl
2010-04-02 09:20:06
比如说有两类线程A、B、C和a b c
分别占有两个队列
那两个队列可以看作临界资源
如果a线程调用notifyAll()
能唤醒ABC的线程吗
肯定能唤醒bc两个线程
那A、B、C呢
...全文
73
2
打赏
收藏
多线程问题
比如说有两类线程A、B、C和a b c 分别占有两个队列 那两个队列可以看作临界资源 如果a线程调用notifyAll() 能唤醒ABC的线程吗 肯定能唤醒bc两个线程 那A、B、C呢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
qybao
2010-04-02
打赏
举报
回复
这取决于a,b,c和A,B,C是否共用synchronize资源
a能唤醒b,c,是因为a,b,c共用了一个队列,如果A,B,C用的是另一个队列,那么a的notifyAll对A,B,C并不产生任何影响
用代码简单地说明
synchronized(queue1) {
...
queue1.notifyAll(); //这个notifyAll只会影响使用queue1的线程,不会影响queue2的线程
}
synchronized(queue2) {
...
queue2.notifyAll(); //这个notifyAll只会影响使用queue2的线程,不会影响queue1的线程
}
所以你的问题的答案,取决于A,B,C是否和a,b,c使用了共同的资源,简单地说就是是否共用了同一段synchronized代码
fantasy471503202
2010-04-02
打赏
举报
回复
notifyAll()方法是唤醒所有wait()的线程的意思,让他们重新获得资源,进入就绪状态,排队等待时间片的获得。并不是因为分资源来唤醒吧,A,B,C应该也会被唤醒。
相关推荐
利用VB
多线程
. 解决VB没有
多线程
的
问题
利用VB
多线程
. 解决VB没有
多线程
的
问题
利用VB
多线程
. 解决VB没有
多线程
的
问题
利用VB
多线程
. 解决VB没有
多线程
的
问题
Java
多线程
开发详解
多线程
创建
多线程
并发
问题
多线程
并发
问题
解决办法 优先级
问题
QT在
多线程
中使用数据库需要注意的
问题
(
多线程
的mysqls是不安全的)解决QT mysql
多线程
异常退出的
问题
QT在
多线程
中使用数据库需要注意的
问题
(
多线程
的mysqls是不安全的)解决QT mysql
多线程
异常退出的
问题
Java核心基础编程精讲-
多线程
从零开始学习Java核心基础编程精讲本章主要为大家介绍
多线程
,让学员快速熟悉基本操作系统简介,java
多线程
,线程相关操作和线程同步、生命周期等。课件在最后一节旁边下载,有什么
问题
可私信我,祝学习愉快
Qt高级系列之8:Qt
多线程
线程池数据同步机制及文件下载器项目实战
1.带领您深入学习QT5/C++:Qt
多线程
线程池及数据同步机制 ,
多线程
文件下载器项目实战,继承自QThread,继承自QObject,QRunnable和QThreadPool,QtConcurrent,Qt
多线程
技术与数据加锁保护机制:QMutex,QSemaphore,QReadWriteLock,QWaitCondition;Qt线程池技术、Qt数据库连接池、等。2.所有章节均有理论知识介绍、接口讲解、实例代码讲解,讲解过程中不断穿插老师在开发过程中遇到的
问题
及解决方法(可以下载所有的电子课件与源码)。
Java SE
62,568
社区成员
307,521
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告