Sobes.tech
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 за предотвратяване на състезателни условия.