【java】让n个线程顺序打印英文字母

Java-Study 基础环境搭建。 阅读详情
要求如下:通过N个线程顺序打印26个英文字母,如给定N=3则输出:
thread0: a
thread1: b
thread2: c
thread0: d
thread1: e
 ...
理解:个人理解,题目考察的是线程间的交互,如何让线程按顺序领取到各自的任务并按顺序打印结果。

解法一:轮询判断任务是否属于该线程,这种做法的优点是简单,但是不断轮询,在线程数多的情况下反而导致效率低


public class Test {
    private volatile static int current = 0; // 当前值
    public static void main(String[] args){
        int n = 3; // 线程数
        int max = 25; // 需打印的最大数
        for(int i=0;i<n;i++){
            new Thread(new PrintThread(i, n, max),"Thread"+i).start();
        }
    }
    static class PrintThread implements Runnable{
        private int n;
        private int i;
        private int max;
        PrintThread(int i,int n, int max){
            this.n = n;
            this.i = i;
            this.max = max;
        }
        @Override
        public void run() {
            while(current <= max){
                if(current % n == i){ // 判断是否为该线程的任务
                    synchronized 
字符串逆序:从双指针到切片,程序员必会的三种核心算法与实战避坑 字符串操作是编程中的基础,涉及内存管理、算法效率与语言特性。其核心原理在于对字符序列的重新排列,其中逆序是检验程序员对底层理解的关键操作。从技术价值看,高效的字符串处理能显著提升程序性能,尤其在数据处理、加密和协议解析等场景。本文聚焦字符串逆序,深入剖析双指针原地交换、栈与递归三种经典方法,并针对C、Python、Java等语言给出实操要点与性能对比。通过探讨回文串判断等应用,揭示字符串处理在算法面试和工程实践中的重要性,帮助开发者根据场景选择最优解,规避编码与性能陷阱。 阅读详情

相关推荐

OJ在线编程输入输出全攻略:从EOF到缓冲区的那些坑

在在线评测系统(OJ)中,程序与评测机交互的核心正是标准输入输出流。理解其底层原理——测试数据被重定向为标准输入,输出被逐字节比对——是避免WA与TLE的关键。EOF(文件结束符)作为数据终止信号,如何正确识别它决定了多组数据能否被完整读取;而缓冲区的高效使用则直接影响大数据量下的读写性能。这些技术价值不仅体现在编程竞赛中,也广泛应用于自动化测试、命令行工具与在线笔试等场景。掌握输入输出的常见模式,如固定数量、T组数据、EOF结束、哨兵值等,并规避行尾空格、换行符、残留缓存等细节陷阱,是每一位刷题者先于算法

weixin_33924312的博客 416

多线程依次循环打印26个英文字母

多线程依次循环打印26个英文字母

基于微信小程序的扫码签到系统源码

大等于jdk1.8,大于mysql5.5,idea(eclipse),微信开发者工具。代码注释齐全,没有多余代码,适合学习(毕设),二次开发,包含论文技术相关文档。签到管理:新增签到,点击查看码展示二维码(有时效性)springboot mybatis 小程序。签到管理:查看用户创建的签到,可删除。用户管理:查看注册用户信息,及删除。签到记录:查看用户签到记录:可删除。个人信息:展示个人信息,可修改。统计分析:查看用户,签到数量。签到记录:查看用户签到记录。登录注册(含授权登录)我的签到:查看签到记录。

wfuhui的博客 5224

开源onlyoffice编译完整过坑版

onlyoffice 编译过坑完整版;

sHImart 4551

ABAP传输自定义IDOC实例

首先确定出站方和入站方,本例中我使用150作为发送方将200作为接收方。 发送端系统配置 进入tcode-SALE,点击定义逻辑系统,这里我定义D01CLNT150为发送端, D01CLNT200为接收端 2,将逻辑系统分配给对应的client 3,进入tcode-WE31,创建IDOC开发段(segment)这里可以按照实际需求创建想要传输的结构,为求简单我创建了ZKNA1并选取了几个客户主数据的字段作为示例 4,进入tcode-WE30,创建Idoc Ty...

Nathan的博客 4078

硬件学习笔记(器件篇)—— 磁珠与磁环

因为有这些差别,所有经常会让人们觉得他们并不是一类器件,但实际上他们的原理是一样的。我们使用磁珠是为了利用损耗消耗高频能量,所以如果我们理解了磁珠是如何消耗高频能量的,我们就能理解磁珠的工作原理。

y_u_yu_yu_的博客 1万+

使用STC15F104W产生PWM脉冲

最近的小项目中使用到了STC15F104W产生PWM脉冲

yeats1989的专栏 1万+

小程序真机调试蓝牙可以使用,线上发布版本蓝牙无法使用

小程序提示请打开蓝牙,微信小程序蓝牙无法连接,小程序真机调试蓝牙可以使用,线上版本蓝牙无法使用,测试环境蓝牙正常,开发环境蓝牙正常,发布后蓝牙无法使用

renkai721的专栏 826

Matlab实现雷达波位编排

1 简介 %本程序用于雷达球坐标系到正弦空间坐标系的转换,以及相控阵雷达的波位编排。 2 完整代码 ​%070228添加波位数据保存clear allclose allclc%波束宽度,单位:度BeamWidth = 3.6;theta05 = round(sin(BeamWidth*pi/180)*1000)/1000;%雷达作用空域AZ = [-15 15]; %方位角范围(雷达球坐标系),单位:度EL = [0 30]; %俯仰角范围(雷

qq_59747472的博客 2479

基于深度学习的人脸识别考勤管理系统,采用YOLOv11和Dlib算法实现人脸识别和考勤签到,前台人脸识别和签到系统 + 后台人脸和考勤管理系统,全网独发

基于深度学习的口罩人脸识别的考勤管理系统,采用YOLOv11和Dlib算法实现人脸识别和考勤签到,前台人脸识别和签到系统 + 后台人脸和考勤管理系统,全网独发

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 1827

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

上一篇: 【linux】指定程序运行的主显卡
哈士奇的布偶
博客等级 码龄9年 16粉丝 21原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值