【发布时间】:2013-10-21 01:54:46
【问题描述】:
我是 Java 和多线程概念的新手。这是我的实验代码:
public class Multithread implements Runnable {
Thread t;
public Multithread(int prior, String name) {
this.t = new Thread(this, name);
this.t.setPriority(prior);
this.t.start();
}
public void run() {
for (int i = 1; i <= 5; i++) {
if (this.t.getName().equals("thread1")) {
System.out.println("First Child Thread Loop No " + i);
}
else {
System.out.println("Second Child Thread Loop No " + i);
}
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
System.out.println(e);
}
}
}
public static void main(String[] args) {
new Multithread(10, "thread1");
new Multithread(7, "thread2");
}
}
输出是:
First Child Thread Loop No 1
Second Child Thread Loop No 1
First Child Thread Loop No 2
Second Child Thread Loop No 2
Second Child Thread Loop No 3
First Child Thread Loop No 3
Second Child Thread Loop No 4
First Child Thread Loop No 4
Second Child Thread Loop No 5
First Child Thread Loop No 5
嗯,我希望是这样一个简单的:
First Child Thread Loop No 1
Second Child Thread Loop No 1
First Child Thread Loop No 2
Second Child Thread Loop No 2
First Child Thread Loop No 3
Second Child Thread Loop No 3
First Child Thread Loop No 4
Second Child Thread Loop No 4
First Child Thread Loop No 5
Second Child Thread Loop No 5
我希望第一个线程总是在第二个线程之前执行。 请解释我的输出。提前致谢。
【问题讨论】:
-
我从来没有理解过这些问题。如果你想要一个特定的执行顺序,你为什么要使用线程?
-
@EJP 我认为这种程序只是一个不懂线程想学习的人写的测试。
-
@Patricia Ya 完全正确。我只是想学习使用多个线程
标签: java multithreading oop