3个回答
2010-05-12
展开全部
thread1{
run() {
synchronized(obj) {
while(条件1不满足)obj.wait();
//下面写满足后的操作
}
}
}
//线程2中将条件1满足,然后唤醒线程1
thread2{
run() {
synchronized(obj) {
//使条件1满足
obj.notifyAll();
}
}
}
obj一定要是对同一个对象的引用
run() {
synchronized(obj) {
while(条件1不满足)obj.wait();
//下面写满足后的操作
}
}
}
//线程2中将条件1满足,然后唤醒线程1
thread2{
run() {
synchronized(obj) {
//使条件1满足
obj.notifyAll();
}
}
}
obj一定要是对同一个对象的引用
展开全部
java使用单纯的wait/notify是无法唤醒指定线程的
一般的做法是修改一个特定标识,然后notifyall,被唤醒的线程查看该标识是否指定自己处理,是就运行下去,不是就继续wait
还有一种做法是针对每一个线程做一个wait
object,要唤醒哪一个就notify哪一个object就行了,但是能不能这样做去取决于你的业务需求
一般的做法是修改一个特定标识,然后notifyall,被唤醒的线程查看该标识是否指定自己处理,是就运行下去,不是就继续wait
还有一种做法是针对每一个线程做一个wait
object,要唤醒哪一个就notify哪一个object就行了,但是能不能这样做去取决于你的业务需求
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Thread t=Thread.currentThread;
t.sleep(long timeout);
t.sleep(long timeout);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询