多线程交替打印从0~100

2021-02-04  本文已影响0人  小飞剑客

简单粗暴直接上代码。

public class ThreadTest2 {

    public synchronized void increateNum(int count) {
        try {
            this.notify();
            System.out.println(Thread.currentThread().getName()+"="+ count);
            this.wait();
        } catch (Exception e) {

        }
    }
    public static void main(String[] args) throws InterruptedException {
        CountDownLatch countDownLatch = new CountDownLatch(100);
        ThreadTest2 threadTest2 = new ThreadTest2();
        Thread thread = new Thread(new Runnable() {
            @Override
            public void run() {
                for (int i = 0; i < 100; i+=2) {
                    countDownLatch.countDown();
                    threadTest2.increateNum(i+1);
                }

            }
        });
        thread.setName("thread1");
        thread.start();
        Thread thread1 = new Thread(new Runnable() {
            @Override
            public void run() {
                for (int i = 1; i < 100; i+=2) {
                    countDownLatch.countDown();
                    threadTest2.increateNum(i+1);
                }
            }
        });
        thread1.setName("thread2");
        thread1.start();

        countDownLatch.await();
        System.out.println("--两个线程执行完毕--");

        thread.interrupt();
        thread1.interrupt();
        System.out.println("———终止所有线程——");
    }
}
上一篇下一篇

猜你喜欢

热点阅读