程序的目标是将三个字符串发送到三个单独的线程,并让它们逐个字符地打印每个字符串。我想要在每个输入字符串之间留出一个空白行,但我不确定将每个线程置于等待状态的位置,还是停止输出,以使输出发生变化。大多数情况下,这是一串串混音,有时一个分开,整齐地出来。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