我應該先創建3個線程,每3秒打印'A'
秒,每4秒打印一次'B'
,每5秒打印一次'C'
。讓線程進入睡眠時間不同的時間
我這樣做,但他們改變了他們的訂單付出印刷和它是可疑的。但我認爲在第9秒他們可以混合......並罰款。請張貼yuur的意見。
public class MyThread extends Thread {
static int ID;
int id;
public MyThread() {
id = ID++;
}
public synchronized void run() {
char character = (char) (65 + id);
while (true) {
System.out.println(character);
try {
Thread.sleep(3000 + id * 1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) {
new MyThread().start();
new MyThread().start();
new MyThread().start();
}
}
輸出:在評論一旁討論
A
B
C
A
B
C
A
B
A
C
B
A
.......
你可能不應該擴展'Thread',而是實現'Runnable'。一般應避免擴展'Thread'。 –
請參閱[如何安排任務以定期間隔運行?](http://stackoverflow.com/questions/4544197/how-do-i-schedule-a-task-to-run-at-periodic-intervals ) –
@BoristheSpider爲什麼? – Yoda