관리 메뉴

gi_dor

Java ν”„λ‘œμ„ΈμŠ€μ™€ μŠ€λ ˆλ“œ λ³Έλ¬Έ

Language/Java

Java ν”„λ‘œμ„ΈμŠ€μ™€ μŠ€λ ˆλ“œ

기돌 2023. 11. 29. 16:10

 

πŸ”Ά ν”„λ‘œμ„ΈμŠ€μ™€ μŠ€λ ˆλ“œ

 

πŸ”Ή ν”„λ‘œμ„ΈμŠ€  - μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜μ„ μ‹€ν–‰λ˜λŠ” ν™˜κ²½μ„ 제곡

  • ν•˜λ‚˜μ˜ ν”„λ‘œκ·Έλž¨μ΄ 싀행될 λ•Œ 운영체제둜 싀행에 ν•„μš”ν•œ μžμ›μ„ 독립적을 ν• λ‹Ή λ°›κ³  
    μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ—μ„œ 싀행에 ν•„μš”ν•œ ν™˜κ²½μ„ μ œκ³΅ν•œλ‹€
  • 싀행쀑인 ν”„λ‘œκ·Έλž¨ ν•˜λ‚˜λ‹Ή ν”„λ‘œμ„ΈμŠ€ ν•˜λ‚˜μ”© 생긴닀
  • λ©€ν‹°νƒœμŠ€ν‚Ή 
    β—» λ™μ‹œμ— λ‘κ°œ μ΄μƒμ˜ ν”„λ‘œμ„ΈμŠ€ (ν”„λ‘œκ·Έλž¨) 의 싀행을 지원 
    β—» ν”„λ‘œμ„ΈμŠ€ λ§ˆλ‹€ 싀행에 ν•„μš”ν•œ μžμ› (CPU, 맀λͺ¨λ¦¬)듀을 적절히 ν• λ‹Ήν•˜κ³  κ΄€λ¦¬ν•˜λŠ” 기술이 ν•„μš”

πŸ”Ή μŠ€λ ˆλ“œ  - μˆ˜ν–‰λ¬Έμ„ μ‹€ν–‰ν•˜λŠ” 일꾼

  • ν”„λ‘œμ„ΈμŠ€κ°€ μˆ˜ν–‰λ¬Έμ„ μ‹€ν–‰ν•˜κΈ° μœ„ν•΄μ„œ μ‚¬μš©ν•˜λŠ” 싀행흐름 (일꾼)
  • λͺ¨λ“  ν”„λ‘œμ„ΈμŠ€λŠ” ν•˜λ‚˜ μ΄μƒμ˜ μŠ€λ ˆλ“œλ₯Ό 가지고 μžˆλ‹€

πŸ”Έ μŠ€λ ˆλ“œ

  • ν•˜λ‚˜μ˜ ν”„λ‘œμ„ΈμŠ€ (ν”„λ‘œκ·Έλž¨)λ‚΄μ—μ„œ μˆ˜ν–‰λ¬Έμ„ μ‹€ν–‰ν•˜λŠ” 싀행흐름을 λ§ν•œλ‹€
  • μŠ€λ ˆλ“œ κΈ°μ€€μœΌλ‘œ ν”„λ‘œκ·Έλž¨ ꡬ뢄
    μ‹±κΈ€μŠ€λ ˆλ“œ : 싀행흐름이 ν•˜λ‚˜λΏμΈ ν”„λ‘œκ·Έλž¨
    λ©€ν‹°μŠ€λ ˆλ“œ : 싀행흐름이 λ‘κ°œ 이상인 ν”„λ‘œκ·Έλž¨
  • λ©”μΈμŠ€λ ˆλ“œ 
    λͺ¨λ“  μžλ°” ν”„λ‘œκ·Έλž¨μ€ main() λ©”μ„œλ“œμ˜ μˆ˜ν–‰λ¬Έμ„ μ‹€ν–‰ μ‹œν‚€λŠ” 메인 μŠ€λ ˆλ“œλ₯Ό 가지고 μžˆλ‹€
  • μ‚¬μš©μž μ •μ˜ μŠ€λ ˆλ“œ λ§Œλ“€κΈ°
    β—» java.lang.Thread클래슀λ₯Ό μƒμ†λ°›μ•„μ„œ λ§Œλ“€κΈ°
  public class MyThread extends Thread {
    public void run() {
      // μŠ€λ ˆλ“œλ‘œ μˆ˜ν–‰μ‹œν‚¬ μž‘μ—…
    }
  }
  
  // μŠ€λ ˆλ“œ 생성 및 μ‹€ν–‰
  MyThread t = new MyThread();
  t.start();

β—» java.lang.Runnable μΈν„°νŽ˜μ΄μŠ€ κ΅¬ν˜„λ°›μ•„μ„œ λ§Œλ“€κΈ°

 public class MyRunnable implements Runnable {
    public void run() {
      // μŠ€λ ˆλ“œλ‘œ μˆ˜ν–‰μ‹œν‚¬ μž‘μ—…
    }
  }

  // μŠ€λ ˆλ“œ 생성 및 μ‹€ν–‰
  MyRunnable r = new MyRunnable();
  Thread t = new Thread(r);
  t.start();

 

πŸ“Œ Runnable을 κ΅¬ν˜„ν•œ ν΄λž˜μŠ€μ˜ μΈμŠ€ν„΄μŠ€λ‘œ μƒμ„±ν•  κ²½μš°

1. Runnable μΈν„°νŽ˜μ΄μŠ€λ₯Ό κ΅¬ν˜„ν•œ ν΄λž˜μŠ€μ˜ κ°μ²΄ μƒμ„±
2. μ΄ κ°μ²΄λ₯Ό Thread ν΄λž˜μŠ€μ˜ μƒμ„±μžμ˜ λ§€κ°œλ³€μˆ˜λ‘œ μ œκ³΅ν•΄μ•Όν•œλ‹€.


❓ run ( ) , start ( )

β—» main λ©”μ„œλ“œμ—μ„œ run ( )  μ„ ν˜ΈμΆœν•˜λŠ” 것은 λ‹¨μˆœνžˆ ν΄λž˜μŠ€μ— μ„ μ–Έλ˜μ–΄μžˆλŠ” λ©”μ„œλ“œλ₯Ό ν˜ΈμΆœν•˜λŠ” 것
β—» start ( )λŠ” μƒˆλ‘œμš΄ μ“°λ ˆλ“œκ°€ μž‘μ—…ν•  call stack (호좜 μŠ€νƒ) 을 μƒμ„±ν•˜κ³  κ·Έ λ‹€μŒμ— run ( )을 호좜

λͺ¨λ“  μ“°λ ˆλ“œλŠ” 독립적인 μž‘μ—…μ„ μˆ˜ν–‰ν•˜κΈ° μœ„ν•΄ μžμ‹ λ§Œμ˜ 호좜 μŠ€νƒμ„ ν•„μš” ν•˜κΈ°μ—
μƒˆλ‘œμš΄ μ“°λ ˆλ“œλ₯Ό μƒμ„±ν•˜κ³  μ‹€ν–‰ μ‹œν‚¬ λ•Œ λ§ˆλ‹€ μƒˆλ‘œμš΄ 호좜 μŠ€νƒμ‹œ μƒμ„±λ˜κ³ 
μ“°λ ˆλ“œκ°€ μ’…λ£Œλ˜λ©΄ μž‘μ—…μ— μ‚¬μš©λœ ν˜ΈμΆœμŠ€νƒμ€ μ†Œλ©Έ ν•œλ‹€

728x90

'Language > Java' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

Java enum  (1) 2023.12.01
Java I / O  (0) 2023.11.23
Java Exception  (4) 2023.11.22
Java μ œλ„€λ¦­, μ»¬λ ‰μ…˜ , Set , List , Map , Stack  (1) 2023.11.20
Java Iterator , Score CRUD  (1) 2023.11.17