【juc】countdownlatch实现游戏进度

news/2024/5/20 5:47:35 标签: juc

目录

        • 一、截图示例
        • 二、代码示例

一、截图示例

在这里插入图片描述

二、代码示例
package com.learning.countdownlatch;

import java.util.Arrays;
import java.util.Random;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

/**
 * @Author wangyouhui
 * @Description 游戏进度
 **/
public class Learning_02 {
    public static void main(String[] args) {
        System.out.println("游戏进度");
        CountDownLatch countDownLatch = new CountDownLatch(10);
        ExecutorService executorService = Executors.newFixedThreadPool(10);
        Random random = new Random();
        String[] array = new String[10];
        for (int i = 0; i < 10; i++) {
            int a = i;
            executorService.submit(()->{
                for (int j = 0; j <= 100; j++) {
                    try {
                        Thread.sleep(random.nextInt(100));
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                    array[a] = j + "%";
                    System.out.print("\r" + Arrays.toString(array));
                }
                countDownLatch.countDown();
            });
        }
        // 主线程等待
        try{
            countDownLatch.await();
            System.out.println("\n游戏开始");
        }catch (InterruptedException e){
            e.printStackTrace();
        }
        executorService.shutdown();
    }
}


http://www.niftyadmin.cn/n/5071800.html

相关文章

关于分布式操作系统

关于分布式操作系统&#xff0c;如果你不太理解的话&#xff0c;可以把它看成是传统操作系统延展。二者的区别在于&#xff0c;传统的操作系统都是单机系统&#xff0c;只能在一台计算机上运行&#xff0c;而分布式操作系统是多机系统&#xff0c;每台计算机都是系统中的一个计…

线性表的线性表示;初始化,输出,插入,删除,查找;

#include <iostream> #include <algorithm>//fill() #define InitSize 5using namespace std;/*线性表&#xff1a;线性表示&#xff1b;初始化&#xff0c;输出&#xff0c;插入&#xff0c;删除&#xff0c;查找*///静态分配数组 typedef struct{int data[InitSi…

[python 刷题] 3 Longest Substring Without Repeating Characters

[python 刷题] 3 Longest Substring Without Repeating Characters 题目&#xff1a; Given a string s, find the length of the longest substring without repeating characters. 这到提要求找的是最长的&#xff0c;没有重复符号的子字符串 解题思路是用双指针哈希表&…

知识图谱1_2——下载neo4j客户端

客户端下载 这里展现一种通过客户端进行操作的方法 https://neo4j.com/download/ 下载desktop客户端 填写完成后开始下载 下载完成后&#xff0c;在命令行输入 chmod x <文件名> #给予文件权限 sudo add-apt-repository universe #安装.appimage所需的包fuse&#x…

5SpringMVC处理Ajax请求携带的JSON格式(“key“:value)的请求参数

SpringMVC处理Ajax 参考文章数据交换的常见格式,如JSON格式和XML格式 请求参数的携带方式 浏览器发送到服务器的请求参数有namevalue&...(键值对)和{key:value,...}(json对象)两种格式 URL请求会将请求参数以键值对的格式拼接到请求地址后面,form表单的GET和POST请求会…

【抓包https请求网络异常/无数据怎么破】

当你测试App的时候&#xff0c;想要通过Fiddler/Charles等工具抓包看下https请求的数据情况&#xff0c;发现大部分的App都提示网络异常/无数据等等信息。 当你测试App的时候&#xff0c;想要通过Fiddler/Charles等工具抓包看下https请求的数据情况&#xff0c;发现大部分的Ap…

nodejs之jsdom插件,运行浏览器环境

https://www.npmjs.com/package/jsdom 一、安装依赖 npm install jsdom二、用法 var jsdom require(jsdom) var { JSDOM } jsdom; var dom new JSDOM(<!DOCTYPE html><html lang"cn"><head></head><body></body></htm…

SpringBoot+MinIO实现对象存储

一、 MinIO MinIO 是一个基于Apache License v2.0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口&#xff0c;非常适合于存储大容量非结构化的数据&#xff0c;例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等&#xff0c;而一个对象文件可以是任意大小&#…