gpt4 book ai didi

java使用多线程和for循环将数组中的元素一一打印到单独的行中

转载 作者:行者123 更新时间:2023-12-03 13:09:19 28 4
gpt4 key购买 nike

对不起我缺乏英语。我不是以英语为母语的人。
今天我学习了线程,现在我正在训练。
我想制作一个程序,使用多线程将数组中的元素一一打印到单独的行中

   package Teeest;

import java.util.Arrays;


public class THREADTEST {
public static void main (String[] args){
int[]a1 ={1,5,7,2,8,1,1,3,6};
int[]a2 = {2,6,1,7,4,8,2,1,7};

Thread2 t1 = new Thread2(a1,5);
Thread2 t2 = new Thread2(a2,10);

t1.thr.start();
t2.thr.start();
t1.thr.interrupt();
t2.thr.interrupt();

}
}

class Thread2 implements Runnable {

Thread thr = new Thread(this);
private int []array;
private int interval;
Thread2(int[] ar, int time) {
array = ar;
interval = time*1000;

}

public void run(){
while(true){
try{
Thread.sleep(interval);
}
catch(InterruptedException e){}
for(int a: array){
System.out.print(array[a]+" ");
}
}

}
}

这是我的代码,我的输出直接打印出整个数组,甚至两个数组也没有分成不同的行。 (我知道我可以使用“\n”,但在这种情况下效果不佳)

但我希望 java 将元素一一打印到两个不同的行中。我该怎么想?

_____________(来自 ar1 的元素的行)
(Enter) (单独的行)
_____________(来自 ar2 的元素的行)当然,线程应该在一个一个打印出元素时工作。

最佳答案

基本上,您只需要在一行上输出array1,在另一行上输出array2。
为此,我会将结果存储在每个线程的 StringBuilder 中。

public void run(){
while(true){
try{
Thread.sleep(interval);
}
catch(InterruptedException e){}
StringBuilder sb = new StringBuilder();
for(int a: array) {
sb.append(array[a] + " ");
}
System.out.println(sb.toString());
}
}

你可以删除这条线
Thread thr = new Thread(this);

并直接调用
t1.start();
t2.start();

我不明白
t1.interrupt();

希望能帮助到你

关于java使用多线程和for循环将数组中的元素一一打印到单独的行中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41684537/

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