Java两个线程交替打印奇数和偶数

【Java两个线程交替打印奇数和偶数】今天看到这个面试题后满脑子想的都是必须得用加锁,通信才可以完成的。发现走了不少弯路。直接上代码,面试用。

package com.macro.mall.demo.test.thread.productconsumer; import java.util.concurrent.atomic.AtomicInteger; /** * @author zxw * @version 1.0 * @description 交替打印 * @data: 2020/2/11 22:05 */ public class Test {public static void main(String[] args) { //java一个包装类,保证是原子操作,并且线程安全 AtomicInteger atomicInteger = new AtomicInteger(0); Thread thread = new Thread(() -> { while (atomicInteger.get() <= 100) { if (atomicInteger.get() % 2 == 0) { System.out.println("偶数" + atomicInteger.get()); //进行++的操作 atomicInteger.incrementAndGet(); } } }); Thread thread2 = new Thread(() -> { while (atomicInteger.get() <= 100) { if (atomicInteger.get() % 2 == 1) { System.out.println("奇数" + atomicInteger.get()); atomicInteger.incrementAndGet(); } } }); thread.start(); thread2.start(); } }

    推荐阅读