[Java] μ€λ λν
μλ°λ νμ€ λΌμ΄λΈλ¬λ¦¬λ‘ μ€λ λνμ μ§μνλ€.
μ€λ λνμ κ³Όλν μ€λ λμ μμ±μ λ°©μ§νκ³ , 미리 μ€λ λλ₯Ό μ μ ν μλ§νΌ κ΄λ¦¬ν΄μ μ€λ λ©μ μ±λ₯μ λμ¬μ£Όλ λ©μ§ λ
μμ΄λ€. μ€λ λλ₯Ό λ€ μ¨λ μ£½μ΄μ§ μκ³ μ¬νμ©μ νλ€.
λ¨μ μ μ€λ λκ° κ³μ λκ³ μλκ±°λΌ... λλΉκ° μ’ μμ μλ μλ€λ κ²μ΄λ€.
java.util.concurrent. ν¨ν€μ§μ λͺ¨μ¬μλ€.
μ€λ λνμ κΈ°λ³Έμ μΌλ‘ ExecutorService μΈν°νμ΄μ€λ‘ ꡬννλλ‘ λμ΄μλλ°. μ§μ λ§λ€μ΄μ°κΈ΄ κ·Έλ κ³ .
κ·Έλ₯ Excutors ν΄λμ€μ μ μ λ©μλ newCachedThreadPool λ±μΌλ‘ μμ±ν μ μλ€.
μ΄κ±΄ μ€λ λ μλ₯Ό μμμ μ κ΄λ¦¬ν΄μ£Όλλ°,
μ§μ μ€λ λμ μλ₯Ό μ νκ³ μΆλ€λ©΄ newFixedThreadPool λ±μ μ¬μ©νλ©΄ λλ€.

κ·Έλ¦¬κ³ μ€λ λνμ μ€νν ν¨μλ₯Ό 보λ΄λ건, submit, execute λ©μλλ‘ μννλ€.
μ¬λ§νλ©΄ submitμ μ°λκ² μ¬νμ©μ΄λ μ μ°μ± λ©΄μμ μ’λ€.
κ·Έλ¦¬κ³ μ΄ λ©μλλ€μ Runnableμ΄λ Callable μΈν°νμ΄μ€μ κ°μ²΄λ₯Ό λ°μμ μ€λ λνμ μ¬λ¦°λ€. Runnableμ μ€νλ§ νκ³ , Callableμ λ°νκ°μ΄ μλ€λκ² λ€λ₯΄λ€.
μλ μ½λλ Runnable κ°μ²΄λ₯Ό 2κ° κ΅¬νν΄μ λ λ¦°λ€.

κ·ΈλΌ λ μ λΉν μμ¬μ λμμ μνλλ€.

κ·ΈλΌ λ°νκ°μ λ°λ건 μ΄λ»κ² μ²λ¦¬ν κΉ?
μκΈ°νλ―, Callable μΈν°νμ΄μ€λ₯Ό μ¬μ©νλ©΄ λλ€.
κ·Έλ¦¬κ³ submit λ©μλλ λ°νκ°μ΄λ μ€λ λμ μνλ₯Ό 체ν¬ν μ μλ Future μΈν°νμ΄μ€ κ°μ²΄λ₯Ό λ°ννλ€.
μ΄λ κ² μ¬μ©νλ€. Stringμ λ°νκ°μΌλ‘ λ°μΌλ Future

κ·Έλ¦¬κ³ λ°νκ°μ Future μΈν°νμ΄μ€μ get ν¨μλ‘ κ°μ Έμ¬ μ μλ€.
μ΄κ±΄ μ€λ λμ ν¨μκ° λλκΈ°κΉμ§ λΈλνλ€κ°, λλλ©΄ κ°μ λ°ννλ ꡬ쑰λ₯Ό κ°μ§λ€.

κ·ΈλΌ λ, μ λλ€.

μ°Έμ‘°
https://limkydev.tistory.com/55
https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ExecutorService.html
https://docs.oracle.com/javase/8/docs/api/index.html?java/util/concurrent/Future.html