【发布时间】:2018-03-13 00:50:12
【问题描述】:
无法以非同步方式打印我的数组的内容。我希望使用 Threads 从静态字符串数组中以非顺序方式迭代并输出字母 "A" 、 "B" 、 "C" 以打印循环。
这是我的代码:
public class ThreadWithExtends extends Thread {
public ThreadWithExtends() {
super();
}
public void run() {
String[] arr = { "A", "B", "C" };
int num = 10;
try {
for (int j = 0; j < num; j++) {
for (int i = 0; i < arr.length; i++) {
sleep((int) (Math.random() * 1000));
System.out.print(arr[i] + " ");
}
}
} catch (InterruptedException e) {
System.out.println("Finished");
}
}
}
我的TestThread 班级:
public class TestThread {
public static void main(String args[]) {
new ThreadWithExtends().start();
}
}
我的输出:A B C A B C A B C A B C A B C A B C A B C A B C A B C A B C
我想要的输出:C A B A B C B A C .. 等,不像上面那样连续。
【问题讨论】:
-
你有一个线程在做顺序工作......
-
为什么?为什么人们想要线程不确定的东西?它们对于日常使用不是确定性的。它们在内心深处是确定性的。为什么要关心?
-
虽然创建了一个线程,但它仍然是一个线程。在运行内部,它只不过是顺序执行流程。你需要的是在主线程上有你的 for 循环,并创建多个线程来迭代和打印结果。
标签: java multithreading loops