我想调用wait()其他Thread becoz如果我当前的类的一部分代码正在执行不想被其他线程中断..为此我这样做
main.class
testThread as=new testThread();
try{
synchronized(as) {
wait();
}
} catch (Exception e) {
Log.d(tag, "In ==Scheduler== error"+e.toString());
}
Run Code Online (Sandbox Code Playgroud)
testThread.class
public void run() {
while(true) {
System.out.println("Thread");
try {
Thread.sleep(6000);
} catch(Exception r) {
}
}
}
Run Code Online (Sandbox Code Playgroud)
并得到以下错误
error java.lang.IllegalMonitorStateException:对象在wait()之前未被线程锁定
为什么我会收到此错误,我该如何解决?
或
synchronized(as)
{
as.wait();
}
Run Code Online (Sandbox Code Playgroud)
要么
synchronized(this)
{
wait();
}
Run Code Online (Sandbox Code Playgroud)
根据你的需要.你需要同步你正在等待的任何东西.
| 归档时间: |
|
| 查看次数: |
2763 次 |
| 最近记录: |