[JAVA] μ€λ λμ μ€νμ μ start()μΌκΉ?
λ©ν°μ€λ λ©
λ©ν°ν μ€νΉμ΄λ?
μ€μ μ²λ¦¬λ μ μλ νλ‘μΈμ€μ μ = CPU μ½μ΄μ κ°μ
CPU μ½μ΄μ κ°μλ³΄λ€ λ§μ νλ‘μΈμ€κ° μ‘΄μ¬νκΈ° λλ¬Έμ λͺ¨λ ν¨κ» λμμ μ²λ¦¬ν μ μμ
κ° μ½μ΄λ€μ μμ£Ό μ§§μ μκ°λμ μ¬λ¬ νλ‘μΈμ€λ₯Ό λ²κ°μκ°λ©° μ²λ¦¬νμ¬ λμμμ ν΅ν΄ λμμ λμνλ κ²μ²λΌ 보μ΄κ² νλ κ²
λ©ν°μ€λ λ©μ΄λ?
λ©ν°ν μ€νΉκ³Ό λ§μ°¬κ°μ§λ‘ νλμ νλ‘μΈμ€ μμ μ¬λ¬κ°μ μ€λ λκ° λμμ ν μμ μ μννλ κ²μ μλ―Έ
μ€λ λλ νλμ μμ λ¨μμ΄λ€
μ start()μΌκΉ?
μλ¬Έμ
λ³΄ν΅ μλ°μμ μ€λ λλ₯Ό ꡬνν λ run() λ©μλλ₯Ό μ€λ²λΌμ΄λνμ¬ μ€λ λκ° μνν λ‘μ§μ μμ±ν¨
κ·Όλ° μ μ€λ λμ μ€νμ run() νΈμΆμ΄ μλ, start() νΈμΆμΌκΉ?
λ§μ½μ run()μ νΈμΆνλ©΄ μ€λ λκ° λμνμ§ μμκΉ?
- μλλ€. λΆλͺ ν λμν¨! κ·Όλ°, run() νΈμΆλ‘ μ€λ λλ₯Ό λμμν€λ κ²μ μλ―Έμλ νμμ΄λ€
μλ―Έμλ νμ?
- Javaμλ μ½ μ€νμ΄ μλ€.
μ½ μ€νμ μ€μ§μ μΈ λͺ λ Ήμ΄λ€μ λ΄κ³ μλ λ©λͺ¨λ¦¬λ‘, νλμ© κΊΌλ΄μ μ€νμν€λ μν μ νκ² λλ€. λ°λΌμ λ§μ½ λμμ λ κ°μ§ μμ μ μννλ€λ©΄ μ½μ€νμ΄ λκ°κ° νμνλ€! μ€λ λλ₯Ό μ¬λ¬κ° μ΄μ©νλ€λ κ²μ JVMμ΄ λ€μμ μ½ μ€νμ λ²κ°μκ°λ©° μ²λ¦¬νκ³ λμμ λμνλ κ²μ²λΌ λμμμ νλ κ²μ΄λ€.
- run() νΈμΆμ μ½ μ€νμ μμ±νμ§ μλλ€.
κ·Έλ°λ° μ¬κΈ°μ run() νΈμΆμ νμ¬ μ€λ λλ₯Ό λμμν€κ² λλ€λ©΄ μ½ μ€νμ΄ μμ±λμ§ μκ³ main()μ μ½ μ€νμ 곡μ νκ² λλ€! run() νΈμΆμ νμ¬ μ€λ λλ₯Ό λμμν€λ κ²μ μ€λ λμ μ₯μ μ μ΄λ¦΄ μ μλ κ²μ΄λ€. λ°λ©΄μ start()λ₯Ό νΈμΆνκ² λλ©΄, JVMλ μμμ μ½ μ€νμ μλ‘ λ§λ€μ΄μ£Όκ³ context switchingμ ν΅ν΄ λμμ λμνλ κ²μ²λΌ 보μ΄κ² νλ€.
- start()λ₯Ό μ¬μ©νμ
κ²°λ‘ μ start()λ₯Ό νΈμΆνλ©΄ λ΄λΆμ μΌλ‘ μ½ μ€νμ μμ±νκ³ run()μ μλμ μΌλ‘ νΈμΆνλ€
Reference
https://github.com/gyoogle/tech-interview-for-developer
gyoogle/tech-interview-for-developer
πΆπ» μ μ κ°λ°μ μ 곡 μ§μ & κΈ°μ λ©΄μ λ°±κ³Όμ¬μ π. Contribute to gyoogle/tech-interview-for-developer development by creating an account on GitHub.
github.com