我想有一个布尔值,通知特定服务启动系统的某些部分。
对于一些奇怪的原因,我发现了错误java.lang.IllegalMonitorStateException: object not locked by thread before notifyAll()
令人感到奇怪的是,notifyAll的()是一个同步块会控制我打电话和notifyAll的()上的对象内。
我班开始是这样的:
public class MyService {
public static Boolean notifier = Boolean.valueOf(false);
@Override
public void start() {
synchronized (MyService.notifier) {
MyService.notifier = Boolean.valueOf(true);
MyService.notifier.notifyAll();
}
}
@Override
public void stop() {
synchronized (MyService.notifier) {
MyService.notifier = Boolean.valueOf(false);
MyService.notifier.notifyAll();
}
}
...
}
我工作的一个Android应用程序。 我不认为它应该有什么影响,但我与补充的情况下,这会影响Java的工作方式是评论的问题。
为什么我得到异常,如果对象被锁定synchronized块里面?