阅读量:4
在Android中,wait()和notify()或notifyAll()是Java提供的线程同步机制,主要用于协调多个线程之间的操作。这些方法必须在同步代码块或同步方法中使用,即在调用它们的对象上持有锁。
以下是一个简单的示例,说明如何在Android中使用wait()和notify():
public class MainActivity extends AppCompatActivity {
private final Object lock = new Object();
private boolean dataReady = false;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
new Thread(new Runnable() {
@Override
public void run() {
// 模拟耗时操作
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
e.printStackTrace();
}
// 数据准备好后,通知主线程
synchronized (lock) {
dataReady = true;
lock.notify();
}
}
}).start();
// 主线程等待数据准备好
synchronized (lock) {
while (!dataReady) {
try {
lock.wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
// 数据准备好后,执行后续操作
}
}
在这个示例中,我们创建了一个名为lock的对象,用于同步主线程和子线程。当子线程完成耗时操作后,它会将dataReady标志设置为true并调用lock.notify()来唤醒主线程。主线程通过lock.wait()等待数据准备好,一旦收到通知,就会继续执行后续操作。
以上就是关于“在Android中wait的线程同步”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm