20210308 - java-squid/effective-java GitHub Wiki
νκ³
Roach
- spring project μ§ν μ€ -> μ¬λ°μ.
- Database κ³΅λΆ μ€...
Han
- μ΄λ² μ£Ό μμ΄ν μ΄ μ΄μ§ μ΄λ €μ λ€.
- μ΄λ²μ νμ¬μμ μλ‘νλ νλ‘μ νΈλ₯Ό node λ‘ μ§ννκ³ μμ -> λ Έλκ° κ°λ²Όμμ μ¬λ°λκ±° κ°μ.
David
- νκ΅ μνμΌμ λλ¬Έμ λ°μκ² μ§λμ
- μμ΄ν λ€μ΄ μ΄νν°λΈ μλ°μμ λ€λ£¨κΈ° μ΄λ €μ΄ λ΄μ©μΈκ² κ°μ. -> λμμ± λΆλΆμ νκ³ λ€λ €λ©΄ λ€λ₯Έ μ± μ 보λκ² μ‘°κΈ λ μ’μκ±° κ°μ.
Pyro
- μ§λ μ£Ό λͺ©μμΌ λΆν° μ½λ리뷰μ΄λ‘ νλνκΈ° μμν¨. -> λλ¦ ν λ§νκ² κ°μ
- μ~μ μ€λλ§μ λ§λ μΉκ΅¬λ μ λ¨Ήμ
Items
Item79
-
ConcurrentModificationException() μ, List μν μ€ elementκ° λ³κ²½λλ©΄ λ°μλκΈ°λ ν¨..
-
alien methodλ?
- overridden, or one provided by a client in the form of a function object.
- stack-overflow
-
μλ΅ λΆκ°, μμ μ€ν¨
- liveness failure (μλ΅ λΆκ°), dead lock μν©
- safety failure (μμ μ€ν¨), λ°μ΄ν°μ λ³κ²½μ΄ μΌμ΄λμ μ μμ μΌλ‘ λμνμ§ μμμ.
-
ConcurrentCollectionμ μ¬μ©νμ..?
-
μλ° μΈμ΄μ λ½μ μ¬μ§μ (reentrant)μ νμ©νλ―λ‘...
Item80
- ExcutorService μ μ©λμ κ΄ν μ€λͺ μ΄ λμμλ μ±ν°..
Item81
- λμμ±(Concurrency) vs λκΈ°ν(Synchronizaion)
- λ³λ ¬μ€νμ΄ ν΅μ¬ vs μ΄λ€ λΆλΆμ lockμ κ±°λ κ²..
- Concurrent Collection
- Blocking Queue
- CountdownLatch...?
- countDown() μ΄ λͺλ² νΈμΆλλμ§λ₯Ό μΈμλ‘ λ°κ³ , ν΄λΉ countDown μ΄ λ°μμ¨ μΈμλ§νΌ μ€νλ¬μλ await λμ΄μλ μ λ₯Ό κΉ¨μ΄λ€? μ£Όμ΄μ§ μΈμ μ«μκ° 0μ΄ λ λκΉμ§ μ€λ λλ₯Ό Blocking μνλ‘ λ§λ λ€.
- countDownLatchκ° 0μ΄λλ μκ°μ΄ λ¬Έμ΄ μ΄λ¦¬λ μκ°!
- countDown μ«μκ° λ΄λ €κ°κΈ°λ§ νλ€.
- Semaphoreλ...?
- (countDown + countUp) Latch
- Mutex..?
- μ°Έκ³ λ§ν¬
Item82
- μμ μ€λ λ μμ ν κ²μ μ¬μ©νλμ§, μλ μ°μ ν΄μ μ¬μ©νλμ§..
Item83
- ν λ©μλκ° volatileμ μ½μμ λ, μ΅μ’
μ μΈ κ°μ΄ μ½μ΄μΌ νλ€. μ μΈ κ³μ½..
- synchronize νκ³ λ λ€λ¦. λ½μ΄ μμΌλ..
Item84
- μ? μ€ν κ°λ₯ν νκ· μ μΈ μ€λ λ μλ νλ‘μΈμ μλ³΄λ€ λ§κ² λ§λ€μ§ μμμΌ νλκ°?
- νλμ νλ‘μΈμλ νμκ° νλμ μ€λ λλ§ μ€ν κ°λ₯
- context switching
λ€μ μ€ν°λ
- λ€μ μ€ν°λ κ΄λ ¨ν΄μ μ΄λ²μ£Ό μμμΌκΉμ§ Issue μ μ¬λ €μ ν¬νν μμ
λ€μ μ§νμ
- roach