Я пытаюсь запустить эти три потока одновременно, но когда я делаю system.print
Чар не выйдет, и счетчик «я» перешагнул.
как-то, я добавляю строку перед Char, она распечатывается правильно, кто-нибудь может объяснить мне, почему это происходит?
public class Part2 {
public static void main(String[] args) {
Runnable printA = new PrintChar('a');
Runnable printB = new PrintChar('b');
Runnable printC = new PrintChar('c');
Thread t1 = new Thread(printA);
Thread t2 = new Thread(printB);
Thread t3 = new Thread(printC);
t1.start();
t2.start();
t3.start();
}
private static class PrintChar implements Runnable {
private char c;
public PrintChar(char c) {
this.c = c;
}
public void run()
{
for(int i = 1; i<=100; i++) {
System.out.print(c + i + ", ");
}
}
}
}
/ * это вывод этого кода:
98, 100, 101, 102, 103, 104, 105, 99, 99, .... 198, * /
/ * если я добавлю строку перед Char, как это
Это результат, который я ожидал; * /
public void run()
{
for(int i = 1; i<=100; i++) {
System.out.print("" + c + i + ", ");
}
}
/ * b1, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, ....
a1 ~ a100
B1 ~ B100
и c1 ~ c100 работает и финиширует одновременно * /