java 控制台进度条(基于守护进程)

有时候我们有这样一种需求,我们需要进行长时间的IO读写。但是又是直接调用封装的方法。没办法打印日志,

我们希望可以在控制打印当前IO的读写状态。在不考虑读写性能的前提下,我的思路是:

  • + new一个打印特殊字符的守护线程出来,间隔时间打印字符串,当IO读写线程结束时,打印字符串线程也结束。

 

复制代码
 /**
     * <per>
     * <p>控制台进度条</p>
     * <per/>
     *
     * @param
     * @return void
     * @throws
     * @Description
     * @author Liruilong
     * @Date 2020年08月19日  15:08:12
     **/
    public static void progress() {
        Thread thread = new Thread(() -> {
            StringBuilder tu = new StringBuilder("▧");
            while (true) {
                tu.append("▧");
                System.out.print("\r本地构建" + "Zip中:\t" + tu + "\t");
                try {
                    TimeUnit.MILLISECONDS.sleep(500);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        });
        thread.setDaemon(true);
        thread.start();
    }
复制代码

 

posted @   山河已无恙  阅读(828)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示