java如何优雅的实现多线程交替打印?

您所在的位置:网站首页 多线程交替打印字母和数字怎么切换 java如何优雅的实现多线程交替打印?

java如何优雅的实现多线程交替打印?

2024-07-12 05:22| 来源: 网络整理| 查看: 265

前几天有人问我交替打印如何实现,在面试过程中出现的大部分都是两个线程交替打印1-100内的数字,那么有没有一个通用的模板,适用于多个线程以及打印任意范围的数呢,今天发一下我写的模板,大家有什么建议可以回复,我再进行修改。

package com.java.alibaba.yimian; import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.locks.Condition; import java.util.concurrent.locks.ReentrantLock; /** * @author Chain * @date 2020/8/11 9:47 * 实现思路是使用Rtl以及condition实现 */ public class ThreePrint100 { //代表你需要几个线程 static final int threadNum = 5; //代表你要打印哪个范围内的数字 static final int maxNum = 1000; //代表你要从几开始打印 static volatile int num = 0; static ReentrantLock lock = new ReentrantLock(); static Condition[] conditions = new Condition[threadNum]; static { for(int i = 0;i < threadNum;i++){ conditions[i] = lock.newCondition(); } } public static void main(String[] args) { for(int i = 0;i < threadNum;i++){ new Thread(new roundPrint(i)).start(); } } static class roundPrint implements Runnable{ final int index; public roundPrint(int index){ this.index = index; } @Override public void run() { while (num


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3