Junior — Middle
Имали ли сте опит с паралелизъм и многопоточност в проектите си?
sobes.tech AI
Отговор от AI
Да, в проектите на Java съм използвал многопоточност за подобряване на производителността и реализиране на паралелни изчисления. Работил съм с класове от пакета java.util.concurrent, като ExecutorService за управление на пул от нишки, и Future за получаване на резултатите от асинхронни задачи.
Пример за създаване и стартиране на няколко нишки с помощта на ExecutorService:
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class ThreadExample {
public static void main(String[] args) {
ExecutorService executor = Executors.newFixedThreadPool(3);
Runnable task = () -> {
System.out.println("Задача в изпълнение в нишка " + Thread.currentThread().getName());
};
for (int i = 0; i < 5; i++) {
executor.submit(task);
}
executor.shutdown();
}
}
Също така съм се сблъсквал с проблеми със синхронизация и съм използвал ключовата дума synchronized и класовете Lock за предотвратяване на състезателни условия.