Junior — Middle
Aké máte skúsenosti s viacvláknovými programami a synchronizáciou vlákien?
sobes.tech AI
Odpoveď od AI
В Java многопоточность реализуется через классы Thread и интерфейс Runnable. Для синхронизации потоков используются ключевые слова synchronized, а также классы из пакета java.util.concurrent, например, ReentrantLock, Semaphore, CountDownLatch.
Пример простой синхронизации с использованием synchronized:
public class Counter {
private int count = 0;
public synchronized void increment() {
count++;
}
public int getCount() {
return count;
}
}
Здесь метод increment синхронизирован, чтобы избежать состояния гонки при увеличении счетчика из нескольких потоков.
Также знаком с использованием ExecutorService для управления пулом потоков и более сложными механизмами синхронизации для обеспечения корректной работы многопоточных приложений.