java两个线程交替打印怎么实现

   2024-10-01 3970
核心提示:可以使用synchronized关键字和wait()、notify()方法来实现两个线程交替打印。下面是一个示例代码:public class AlternatePrint

可以使用synchronized关键字和wait()、notify()方法来实现两个线程交替打印。下面是一个示例代码:

public class AlternatePrint {    private static Object lock = new Object();    private static int count = 1;    private static int maxCount = 10;    public static void main(String[] args) {        Thread t1 = new Thread(() -> {            while (count <= maxCount) {                synchronized (lock) {                    if (count % 2 == 1) {                        System.out.println(Thread.currentThread().getName() + ": " + count);                        count++;                        lock.notify();                    } else {                        try {                            lock.wait();                        } catch (InterruptedException e) {                            e.printStackTrace();                        }                    }                }            }        });        Thread t2 = new Thread(() -> {            while (count <= maxCount) {                synchronized (lock) {                    if (count % 2 == 0) {                        System.out.println(Thread.currentThread().getName() + ": " + count);                        count++;                        lock.notify();                    } else {                        try {                            lock.wait();                        } catch (InterruptedException e) {                            e.printStackTrace();                        }                    }                }            }        });        t1.setName("Thread-1");        t2.setName("Thread-2");        t1.start();        t2.start();    }}

在这个示例中,我们创建了两个线程t1和t2,它们交替打印1到10的数字。使用synchronized关键字和wait()、notify()方法来确保两个线程能够交替执行。当一个线程打印完数字后,会调用notify()方法通知另一个线程可以执行,然后自己进入等待状态。这样就实现了两个线程交替打印的效果。

 
举报打赏
 
更多>同类物流大全
推荐图文
推荐物流大全
点击排行

网站首页  |  关于我们  |  联系方式网站留言    |  赣ICP备2021007278号