在Android开发中,可以使用notify()wait()方法来实现线程之间的通信。

首先,需要在共享对象上使用synchronized关键字来获取锁,以确保线程安全。

然后,在等待线程中,可以使用wait()方法释放锁并进入等待状态,直到其他线程调用同一个对象上的notify()方法来唤醒等待线程。

在唤醒线程中,可以使用notify()方法来通知等待线程,使其从等待状态转为就绪状态。

下面是一个示例代码,演示了如何使用notify()wait()方法来实现线程通信:

public class ThreadCommunicationExample {
    public static void main(String[] args) {
        final Object lock = new Object();

        Thread waitThread = new Thread(new Runnable() {
            @Override
            public void run() {
                synchronized (lock) {
                    try {
                        System.out.println("等待线程进入等待状态");
                        lock.wait(); // 释放锁并等待唤醒
                        System.out.println("等待线程被唤醒");
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
            }
        });

        Thread notifyThread = new Thread(new Runnable() {
            @Override
            public void run() {
                synchronized (lock) {
                    try {
                        Thread.sleep(2000); // 模拟耗时操作
                        System.out.println("唤醒等待线程");
                        lock.notify(); // 唤醒等待线程
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
            }
        });

        waitThread.start();
        notifyThread.start();
    }
}

在这个示例中,waitThread线程进入等待状态并等待被唤醒,而notifyThread线程在执行完耗时操作后唤醒等待线程。

注意,wait()notify()方法必须在同一个对象上使用,否则会抛出IllegalMonitorStateException异常。

Android 线程通信:使用 notify() 和 wait() 实现

原文地址: http://www.cveoy.top/t/topic/X2D 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录