public class PingPong {
public static synchronized void main(String[] args) {
Thread thread = new Thread() {
public void run() {
pong();
}
};
thread.run();
System.out.print("Ping");
}
static synchronized void pong() {
System.out.print("Pong");
}
}
Начнём с того, что синхронизировав статические методы мы добились того, что результат программы гарантируется от запуска к запуску. Но почему она пишет
PongPing
вместо PingPong
?Типичная ошибка и простая невнимательность. Для запуска отдельного потока надо вызывать метод
start
, а не метод run
. В нашем случае всё действие происходит на одном потоке.Будьте внимательны!
Комментариев нет:
Отправить комментарий