
已解决问题
谷歌bigheadyan用户在2013.08.19提交了关于“哈弗有关j**a线程的错误”的提问,欢迎大家涌跃发表自己的观点。目前共有1个回答,最后更新于2024-11-05T21:18:44。publicclassExercise{publicstaticvoidmain(String[]args){
Exerciseex=newExercise();
***.go();
}
publicvoidgo(){
MyThreadmt=newMyThread("one");
***.start();
}
}
classMyThreadextendsThread{
privateStringname="";
MyThread(Strings){
name=s;
}
publicvoidrun(){
notwait();
system.***.println("finished");
}
publicvoidnotwait(){
while(true){
try{
system.***.println("waiting");
wait();
}
catch(InterruptedExceptione){}
system.***.println(name);
}
}
}
这段程序运行后结果为
waiting
Exceptioninthread"Thread-0"j**a.***.illegalmonitorstateexception
atj**a.***.wait(NativeMethod)
atj**a.***.wait(***.j**a:485)
atmypackage.***.notwait(***.j**a:34)
atmypackage.***.run(***.j**a:24)
请问导致此异常的具体原因啊。非常感谢!希望大家能够帮助她。
详细问题描述及疑问:publicclassExercise{
publicstaticvoidmain(String[]args){
Exerciseex=newExercise();
***.go();
}
publicvoidgo(){
MyThreadmt=newMyThread("one");
***.start();
}
}
classMyThreadextendsThread{
privateStringname="";
MyThread(Strings){
name=s;
}
publicvoidrun(){
notwait();
system.***.println("finished");
}
publicvoidnotwait(){
while(true){
try{
system.***.println("waiting");
wait();
}
catch(InterruptedExceptione){}
system.***.println(name);
}
}
}
这段程序运行后结果为
waiting
Exceptioninthread"Thread-0"j**a.***.illegalmonitorstateexception
atj**a.***.wait(NativeMethod)
atj**a.***.wait(***.j**a:485)
atmypackage.***.notwait(***.j**a:34)
atmypackage.***.run(***.j**a:24)
请问导致此异常的具体原因啊。非常感谢!期待您的答案,不知道说什么,送你一朵小红花吧
!