При наличии нескольких потоков ваши классы должны быть поточно-безопасными . Одним из способов достижения этого является создание одновременно доступных методов synchronized
.
Вот пример для начала:
public class Test {
public static void main(String[] args) throws Exception {
new Thread() { public void run() { Test.method(); }}.start();
new Thread() { public void run() { Test.method(); }}.start();
}
public synchronized static void method() {
System.out.println("hello ");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {}
System.out.println("world");
}
}
Без модификатора synchronized
эта программа напечатала бы
hello
hello
world
world
С ключевым словом synchronized
1014 * только один поток может вызвать method
, поэтому программа печатает
hello
world
hello
world