【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();
}
}
推荐阅读
- java简介|Java是什么(Java能用来干什么?)
- Java|一个月内面了30家企业,不断对比薪资,我从18K变成了38K
- Java中常见面试题一(简单)
- Java中常见面试题一(中等)
- Java中常见面试题一(困难)
- java|腾讯大佬结合实战案例带你深入了解Spring开发
- Java|Summary_DataBase面试试题
- 面试题之开两个线程交替输出数字
- 进程和线程的区别是什么()