线程不能唤醒了....请帮我看看...

jyf7356759 2008-03-22 07:14:03
run的代码:
public void run() {
try {
if (pause) {
synchronized (this) {
wait();
}
}
//thread sleep every 0.25 sencond, so will not excute more than 4 links within 1 second
Thread.sleep(250);
if (isrun) {
getGoodLinks((String) crawledUrls.get(i));
}

} catch (Exception e) {
// TODO Auto-generated catch block
System.out.println("----thread interrupted----");
}
}
唤醒的代码
pause = false;
synchronized (sa) { //
sa.notifyAll();
}
百思不得其解,之前还可以唤醒的....
...全文
62 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunyujia 2008-03-23
  • 打赏
  • 举报
回复
this.wait();a对象所在的线程被等待

this.notifyAll();//所以拥有a对象并因a对象处于等待状态的线程被唤醒了.

楼主再看看
lilyly 2008-03-22
  • 打赏
  • 举报
回复
同意楼上的, 监视器需要是同一个对象,才能够唤醒该对象等待线程池里的线程
老紫竹 2008-03-22
  • 打赏
  • 举报
回复
synchronized (this) {

synchronized (sa) { //

你确信这2个是同一个对象吗?

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧