Dzień dobry.
Jest pytanie na taką rozmowę.
Ile sposobów tworzenia wątków znasz? W odpowiedziach pojawia się cyfra 2: albo utwórz
Thread
, przekazując ją
Runnable
, albo utwórz obiekt klasy potomnej,
Thread
w której
run()
. Ale zastanawiałem się: czy to dwa? Jeśli użyjesz
concurrent
np.
Executors.newFixedThreadPool(5)
wtedy, gdy tworzone są obiekty wątku, od razu po wykonaniu tej metody lub później, gdy zadania pojawią się do wykonania (w końcu mogą się nie pojawić). Wszystkie te metody fabryczne zwracają jakąś konfigurację
ThreadPoolExecutor
, która ma jeden z parametrów konfiguracyjnych.O
corePoolSize
tym polu jest napisane:
corePoolSize
– liczba wątków, które mają pozostać w puli,
nawet jeśli są one bezczynne , chyba
allowCoreThreadTimeOut
że jest ustawiona. jeśli zadania nie dotarły, to utworzyliśmy 5 pracowników bezczynnych, może zaczną tworzyć się, gdy zadania zaczną napływać?
Ogólnie rzecz biorąc, w odpowiedzi na pytanie można nadal pamiętać o 2 lub 3 opcjach?
GO TO FULL VERSION