程序的目標是將三個字符串發送到三個單獨的線程,並讓它們逐個字符地打印每個字符串。我想要在每個輸入字符串之間留出一個空白行,但我不確定將每個線程置於等待狀態的位置,還是停止輸出,以使輸出發生變化。大多數情況下,這是一串串混音,有時一個分開,整齊地出來。Java線程調度分離
import java.util.Scanner;
public class Threader {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("Hello");
String str = scan.nextLine();
String str2 = scan.nextLine();
String str3 = scan.nextLine();
Thread A = new Thread(new MyRunnable(str));
A.start();
Thread B = new Thread(new MyRunnable(str2));
B.start();
Thread C = new Thread(new MyRunnable(str3));
C.start();
}
}
public class MyRunnable implements Runnable {
String str, str2, str3;
public MyRunnable(String str){
this.str = str;
}
@Override
public void run() {
for (int i = 0; i < str.length(); i++){
System.out.println(str.charAt(i));
try {
Thread.sleep(10);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
如果你想實現一個特定的分離,你一定要使用wait/notify或某種信號量。 – EJP
我不明白,你想要每個線程打印字符串,每行一個字符,但你不想要另一個線程打印將有一個這樣做? – Asoub