На прошлой неделе у меня был тест на темы, и я неправильно понял эти 2 вопроса. Мне было интересно, если кто-нибудь может помочь мне получить правильный ответ на эти вопросы. Спасибо.
Есть ли какие-либо результаты, которые НЕ МОГУТ быть результатом этой программы?
Я путаюсь с такими вопросами. Я запустил программу и обнаружил, что Bbccaa возможна, aaccbb возможна, ccbbaa возможна и aabbcc возможна.
public class Test4 extends Thread { //8
public Test4(String name) {
super(name);
}
public void run() {
print(getName());
}
public static synchronized void print(String n) {
System.out.print(n);
try { sleep(...); } catch (Exception ex) {} // unspecified random time
System.out.print(n);
}
public static void main(String argv[]) throws Exception {
Test4 ta = new Test4("a");
Test4 tb = new Test4("b");
Test4 tc = new Test4("c");
ta.start();
tb.start();
tc.start();
ta.join();
tb.join();
tc.join();
}
}
Тот же вопрос для этого кода
Абав возможен, бааб возможен, баба возможна. Я путаюсь с такими вопросами. Есть ли какие-нибудь хитрости или советы, которые помогут мне понять, какой вывод невозможен.
public class Test3 extends Thread {
public Test3(String name) {
super(name);
}
public void run() {
print(getName());
}
public static void print(String n) {
System.out.print(n);
try { sleep(...); } catch (Exception ex) {}
System.out.print(n);
}
public static void main(String argv[]) throws Exception {
Test3 ta = new Test3("a");
Test3 tb = new Test3("b");
Test3 tc = new Test3("c");
ta.start();
tb.start();
ta.join();
tb.join();
}
}