gpt4 book ai didi

命令行上的 java 进度条 [线程]

转载 作者:行者123 更新时间:2023-12-02 00:45:13 24 4
gpt4 key购买 nike

我之前在论坛上搜索过,发现了一些命令行进度条的实现示例。现在我还有一个问题。我正在使用以下实现示例:

public void print_progress(int percent){

StringBuilder bar = new StringBuilder(category + ": [");

for(int i = 0; i < 50; i++){
if( i < (percent/2)){
bar.append("=");
}else if( i == (percent/2)){
bar.append(">");
}else{
bar.append(" ");
}
}

bar.append("] " + percent + "% ");
System.out.print("\r" + bar.toString());
}

但是我想在三个线程中使用它,同时运行,想在一个栏中显示每个线程的进度,就像在命令行上一样。现在,每当一个线程调用 print_progress() 方法时,它都会覆盖之前的线程。

有人能告诉我这是否可能吗?如果可以,怎么做?

提前非常感谢。

最佳答案

代表

在简单的命令行上,如果进度条占据整行,则这是不可能的。您可以使用 \r 返回到行的开头,但不能返回到上一行。

不过,您可以在同一行中显示 3 个进度条。

多线程问题

让多个线程以有序的方式输出到单个流是很复杂的。让另一个线程处理输出并接收来自工作线程的消息要容易得多。

这些消息可以采用线程安全队列中的项目、信号、线程安全流中的字节或任何您喜欢的形式。

关于命令行上的 java 进度条 [线程],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5168527/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com