java exchanger如何優(yōu)雅地關(guān)閉

小樊
85
2024-07-09 11:01:23

在Java中,可以通過調(diào)用Exchanger類的close()方法來(lái)優(yōu)雅地關(guān)閉Exchanger。在調(diào)用close()方法之前,可以先調(diào)用exchanger的exchange()方法來(lái)確保所有線程都已完成交換操作。然后再調(diào)用close()方法來(lái)關(guān)閉Exchanger。以下是一個(gè)示例代碼:

Exchanger<Integer> exchanger = new Exchanger<>();

// 創(chuàng)建線程進(jìn)行交換操作
Thread t1 = new Thread(() -> {
    try {
        int result = exchanger.exchange(1);
        System.out.println("Thread 1 exchanged: " + result);
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
});

Thread t2 = new Thread(() -> {
    try {
        int result = exchanger.exchange(2);
        System.out.println("Thread 2 exchanged: " + result);
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
});

t1.start();
t2.start();

// 確保所有線程都已完成交換操作
exchanger.exchange(null);

// 關(guān)閉Exchanger
exchanger.close();

通過以上代碼,我們可以確保所有線程都已完成交換操作后再關(guān)閉Exchanger,從而實(shí)現(xiàn)優(yōu)雅地關(guān)閉Exchanger。

0