多个线程交替打印ABC

news2024/11/26 10:34:37

多个线程交替打印ABC

package 多个线程交替打印ABC;

import java.util.concurrent.BrokenBarrierException;
import java.util.concurrent.CyclicBarrier;

/**
 * Created with IntelliJ IDEA.
 *
 * @Author: AlenXu
 * @Date: 2024/03/20/10:10
 * @Description:
 */
public class ThreadLoopPrint {
    // 共享计数器
    private static int sharedCounter = 0;

    public static void main(String[] args) {
        // 打印内容
        String printStr = "ABC";

        // 定义循环栅栏
        CyclicBarrier cyclicBarrier = new CyclicBarrier(3, () -> System.out.println());

        // 执行任务
        Runnable runnable = new Runnable() {
            @Override
            public void run() {
                for (int i = 0; i < printStr.length(); i++) {
                    synchronized (this) {
                        sharedCounter = sharedCounter > 2 ? 0 : sharedCounter; // 循环打印
                        System.out.print(printStr.toCharArray()[sharedCounter++]);
                    }
                    try {
                        // 等待3个线程都打印过一遍,继续下一轮
                        cyclicBarrier.await();
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    } catch (BrokenBarrierException e) {
                        e.printStackTrace();
                    }
                }
            }
        };

        // 开启多个线程
        new Thread(runnable).start();
        new Thread(runnable).start();
        new Thread(runnable).start();
    }
}

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1530951.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Hack The Box-Devvortex

目录 信息收集 nmap whatweb WEB web信息收集 wfuzz 漏洞探索 漏洞发现 反弹shell 提权 get user hashcat get root 信息收集 nmap 端口信息收集┌──(root?ru)-[~/kali/hackthebox] └─# nmap -p- 10.10.11.242 --min-rate 10000 Starting Nmap 7…

javase Set集合

Collection子接口2&#xff1a;Set 5.1 Set接口概述 Set接口是Collection的子接口&#xff0c;Set接口相较于Collection接口没有提供额外的方法 Set 集合不允许包含相同的元素&#xff0c;如果试把两个相同的元素加入同一个 Set 集合中&#xff0c;则添加操作失败。 Set集合…

红黑树简单介绍

1. 概念介绍 红黑树是一种自平衡二叉查找树&#xff0c;由于自平衡的特性&#xff0c;保证了最坏情况下在O&#xff08;logn&#xff09;时间复杂度内完成查找、增加、删除等操作&#xff0c;性能表现稳定。 在JDK中&#xff0c;TreeMap、TreeSet以及JDK1.8的HashMap底层都采用…

数据之王国:解析Facebook的大数据应用

引言 作为全球最大的社交媒体平台之一&#xff0c;Facebook拥有庞大的用户群体和海量的数据资源。这些数据不仅包括用户的个人信息和社交行为&#xff0c;还涵盖了广告点击、浏览记录等多方面内容。Facebook通过巧妙地利用这些数据&#xff0c;构建了强大的大数据应用系统&…

面向航天器大数据安全传输的发布/订阅系统设计

源自&#xff1a;系统工程与电子技术 作者&#xff1a;覃润楠 彭晓东 谢文明 惠建江 冯渭春 姜加红 “人工智能技术与咨询” 发布 摘 要 针对航天器试验任务过程监控的在轨故障诊断状态检测、健康状态评估与航天器寿命预测等多个环节中, 海量试验数据在传输、共享、处…

若依 无法导入表名过长的表格

原因 在mapper文件中&#xff0c;有很多转换的语句&#xff0c;使用的是nvarchar类型&#xff0c;nvarchar类型的长度很长&#xff0c;但是默认长度是30位。超过30位就会被截断 解决方案 找到mapper文件中所有对表名转换的地方&#xff0c;把长度扩大到100

电脑所有文档底色变绿?记好这4个方法就足够!

“这是怎么回事呢&#xff1f;怎么我的电脑里面所有文档底色都变绿了呢&#xff1f;我应该怎么操作才可以解决这个问题呀&#xff1f;” 在使用电脑的过程中&#xff0c;有时我们可能会遇到电脑所有文档底色变绿的情况。这种情况不仅影响了文档的阅读体验&#xff0c;还可能对视…

Visual Studio - 添加快捷键图标

Visual Studio - 添加快捷键图标 1. Text Editor Toolbar Options -> Add or Remove Buttons -> Customize2. Toolbars3. Commands -> Debug4. Add Command...References 1. Text Editor Toolbar Options -> Add or Remove Buttons -> Customize 2. Toolbars B…

【CSS】html滚动条相关

1.滚动条样式 ::-webkit-scrollbar {width: 10px;height: 10px;z-index: 101; } ::-webkit-scrollbar-thumb {border-radius: 5px;background: #cecece; } ::-webkit-scrollbar-track {// background: #f5f5f5be;background: rgba(33, 85, 163, 0); } ::-webkit-scrollbar-but…

热插拔技术详解(下)

4、热插拔导致的浪涌问题及其防治 &#xff08;1&#xff09;浪涌的概念 浪涌&#xff08;Electrical Surge&#xff09;顾名思义就是瞬间出现超出稳定值的峰值&#xff0c;它包括浪涌电压和浪涌电流。 浪涌电压是指超出正常工作电压的瞬间过电压&#xff1b;浪涌电流是指电源…

基于springboot+vue的疫情信息管理系统

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战&#xff0c;欢迎高校老师\讲师\同行交流合作 ​主要内容&#xff1a;毕业设计(Javaweb项目|小程序|Pyt…

AI助手 - 月之暗面 Kimi.ai

前言 这是 AI工具专栏 下的第四篇&#xff0c;这一篇所介绍的AI&#xff0c;也许是截至今天&#xff08;204-03-19&#xff09;国内可访问的实用性最强的一款。 今年年初&#xff0c;一直看到有人推荐 Kimi&#xff0c;不过面对雨后春笋般的各类品质的AI&#xff0c;说实话也有…

IP地址的分配:数字世界的地址规划者

在互联网的世界里&#xff0c;IP地址扮演着类似于房屋地址的角色&#xff0c;是用于标识和定位互联网上每个连接到网络的设备的唯一标识符。然而&#xff0c;这些IP地址并非随意分配&#xff0c;而是经过精心规划和管理的。本文将探讨IP地址的分配方式&#xff0c;揭示数字世界…

媒体邀约专访的意义?怎么做

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 媒体邀约专访是指企业、组织或个人主动邀请媒体进行专题访谈的一种公关活动。这种活动对于提升品牌形象、传播信息、增强公众认知度和信任度等方面都有重要作用。以下是媒体邀约专访的一…

zabbix监控FortiGate防火墙 FortiGate配置SNMP

SNMP&#xff08;Simple Network Management Protocol&#xff09;是一种常用的监控方式。在Zabbix中&#xff0c;可以通过配置SNMP来监控网络设备和服务器。具体步骤如下&#xff1a; 1.FortiGate防火墙开启SNMP 登录防火墙&#xff0c;配置SNMP&#xff1a; 团体名称&#…

【探索Linux】—— 强大的命令行工具 P.28(网络编程套接字 —— 简单的UDP网络程序模拟实现)

阅读导航 引言一、UDP协议二、UDP网络程序模拟实现1. 预备代码⭕makefile文件⭕打印日志文件⭕打开指定的终端设备文件&#xff0c;并将其作为标准错误输出的目标文件描述符 2. UDP 服务器端实现&#xff08;UdpServer.hpp&#xff09;3. UDP 客户端实现&#xff08;main函数&a…

使用Redis做缓存的小案例

如果不了解Redis&#xff0c;可以查看本人博客&#xff1a;Redis入门 Redis基于内存&#xff0c;因此查询速度快&#xff0c;常常可以用来作为缓存使用&#xff0c;缓存就是我们在内存中开辟一段区域来存储我们查询比较频繁的数据&#xff0c;这样&#xff0c;我们在下一次查询…

服装行业实现数字化转型,只需上线这个系统!

近年来&#xff0c;内卷、降本增效等词频频冲上热搜&#xff0c;随着经济的周期性下行&#xff0c;服装企业的竞争愈发激烈&#xff0c;小单快返时代的到来&#xff0c;加速了服装行业的重新洗牌。在这样的大环境下&#xff0c;服装企业数字化转型几乎成了取得确定性增长的唯一…

QT网络编程之获取本机网络信息

一.概述 查询一个主机的MAC地址或者IP地址是网络应用中常用到的功能&#xff0c;Qt提供了QHostInfo和QNetworkInterface 类可以用于此类信息的查询 1.QHostInfo 类&#xff08;显示和查找本地的信息&#xff09; 2.QNetworkInterface 类&#xff08;获得应用程序上所在主机的…

Sublime Text3 C/C++一键调试运行代码

minGW的系统环境配置&#xff1a; 使用的C/C编译器是minGW&#xff0c;点此进入官网链接&#xff0c;下载后需要在线安装&#xff0c;安装后需要将安装目录下的bin目录所在路径加入path环境变量。本菜鸡的电脑里安装了CodeBlocks&#xff0c;在CodeBlocks的安装目录下有MinGW&…