温馨提示×

java线程等待能否优化代码执行

小樊
83
2024-07-09 14:56:29
栏目: 编程语言

Java线程等待可以通过使用wait()notify()方法来优化代码执行。这可以帮助避免线程资源的浪费,提高程序的效率。

在需要等待的地方,使用wait()方法让线程进入等待状态。当条件满足时,通过调用notify()方法来唤醒等待的线程继续执行。

下面是一个简单的示例代码:

public class WaitNotifyExample {
    private final Object lock = new Object();
    private boolean condition = false;

    public void waitForCondition() {
        synchronized (lock) {
            while (!condition) {
                try {
                    lock.wait();
                } catch (InterruptedException e) {
                    Thread.currentThread().interrupt();
                }
            }
        }
        // 执行等待之后的操作
        System.out.println("Condition is true, continue execution");
    }

    public void setConditionTrue() {
        synchronized (lock) {
            condition = true;
            lock.notify();
        }
    }
    
    public static void main(String[] args) {
        WaitNotifyExample example = new WaitNotifyExample();

        Thread thread1 = new Thread(() -> {
            example.waitForCondition();
        });

        Thread thread2 = new Thread(() -> {
            try {
                Thread.sleep(2000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            example.setConditionTrue();
        });

        thread1.start();
        thread2.start();
    }
}

在这个例子中,waitForCondition()方法会让线程进入等待状态,直到condition条件为true时才会继续执行。setConditionTrue()方法会设置条件为true,并调用notify()方法唤醒等待的线程。这样可以避免线程一直占用资源等待条件满足的情况发生,提高程序的效率。

0