object not locked by thread before wait() 如上,我想让一个正在执行的线程停下来,就调用了 thread.wait 方法,但是显示如上的错误,不知道错误原因,顺便问下使线程停止运行并且还可以重启应该采用什么方法? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 方法前要加synchronized锁定,即是必须先加锁,然后再调用wait(),notify()方法。必须的,,,, 按你这个问题是这样的但是 wait notify 用于同步操作,典型的同步原语啊。 让它中断线程用 interrupt(),或者可以让他睡眠 sleep 主要是 Sleep 之后还会占用 CPU 资源,而貌似等待就不会 对 要想用wait方法必须先加同步锁 楼主对Object.wait方法理解错了吧。wait不是针对线程Thread/Runnable的,而是针对锁对象的假设某个Object lock = new Object();线程1(比如消费者线程)调用lock.wait()方法后,线程1就停下,直到其他某个线程(比如生产者线程)调用了lock.notify()或者lock.notifyAll();唤醒一个或者多个等待lock被唤醒的线程(此例中的线程1)。调用wait之前,需要对lock同步synchronized (lock) {...}如果只是想让当前线程停下一段时间Thread.sleep(毫秒数) 楼上正解,应该调用lock对象的wait方法:lock.wait()而不是线程的wait方法如果没有在同步块中调用wait,会报IllegalMonitorStateException,而楼主报的不是这个异常。线程中止并重启,这个...线程中止可以让标记线程的变量置为false,从外部调用方法中止线程,重启嘛,你重新执行一下run方法中的代码不就好了。 可以试试看syncronized(this) { //把wait代码放在synchronized块中,锁线程自己 wait(1000); //锁一定的时间,要不然没有notify就一直wait了} 算法的问题........java中的图片交换! 急 c/s结构,Swing和socket的传输的问题和加载图片能够点击动态执行的问题(在线等) 又是一个路径问题 javabean 请问如何将.class发布为.exe? 一个困惑我许久的问题,Java的事件机制是如何实现的? 如何选中JTable中的一行? 怎么样在应用程序中播放*。AU文件?????????? 请教一个entity bean的问题 在applet中如何实现一副图片的拖动? 求助推箱子游戏用到的图片资源 请教一个list与hashMap的问题 当jtable的某单元格双击处于编辑状态(答到边的都有分)
线程1(比如消费者线程)调用lock.wait()方法后,线程1就停下,直到其他某个线程(比如生产者线程)调用了lock.notify()或者lock.notifyAll();唤醒一个或者多个等待lock被唤醒的线程(此例中的线程1)。
调用wait之前,需要对lock同步synchronized (lock) {...}如果只是想让当前线程停下一段时间
Thread.sleep(毫秒数)
如果没有在同步块中调用wait,会报IllegalMonitorStateException,而楼主报的不是这个异常。
线程中止并重启,这个...线程中止可以让标记线程的变量置为false,从外部调用方法中止线程,重启嘛,你重新执行一下run方法中的代码不就好了。
syncronized(this) { //把wait代码放在synchronized块中,锁线程自己
wait(1000); //锁一定的时间,要不然没有notify就一直wait了
}