-
[Thread] Threadλ₯Ό μμ±νλ λ°©λ² - Runnable μΈν°νμ΄μ€μ Thread ν΄λμ€μ μ°¨μ΄κ°λ°/Java 2022. 4. 13. 17:15
μλ νμΈμπΏοΈ
μ€λμ μ°λ λμ λν κΈ°λ³Έμ μΈ μ΄μΌκΈ°λ₯Ό λλ λ³ΌκΉ ν©λλ€.
μ°λ λλ₯Ό μμ±νλ κ²μ ν¬κ² λκ°μ§ λ°©λ²μ΄ μμ΅λλ€.
νλλ Runnable μΈν°νμ΄μ€λ₯Ό μ¬μ©νλ κ²μ΄κ³ , λ€λ₯Έ νλλ Thread ν΄λμ€λ₯Ό μ¬μ©νλ κ²μ λλ€.
μ¬μ€ Thread ν΄λμ€λ Runnable μΈν°νμ΄μ€λ₯Ό ꡬνν ν΄λμ€μ΄λ―λ‘, μ΄λ€ κ²μ μ μ©νλλμ μ°¨μ΄λ§ μμ΅λλ€.
κ·Έλ¦¬κ³ λλ€ java.lang ν¨ν€μ§μ μμ΄μ, μ¬μ©ν λμ λ³λλ‘ importλ νμ μμ΅λλ€.
Runnable μΈν°νμ΄μ€μ μ μΈλμ΄ μλ λ©μλλ λ¨μ§ νλ μΈλ°μ, κ·Έκ²μ void νμ μ run() λ©μλ μ λλ€. μ΄κ²μ μ°λ λκ° μμλλ©΄ μνλλ λ©μλμ λλ€.
λ°λ©΄μ, Thread ν΄λμ€λ λ§€μ° λ§μ μμ±μμ λ©μλλ₯Ό μ 곡ν©λλ€. (μ΄ λΆλΆμ λμ€μ λ°λ‘ λ€λ£¨λλ‘ νκ² μ΅λλ€.)
μ€λμ μ£Όμ λ μ΄ λκ°μ§ μ¬μ©λ²μ λν μ°¨μ΄λ₯Ό λ€λ£¨λ κ²μ΄λ μ΄κ²μ λ¨Όμ 보λλ‘ νκ² μ΅λλ€.
κ·ΈλΌ μλ μ½λλ₯Ό ν΅ν΄μ νμΈν΄ 보λλ‘ νκ² μ΅λλ€.
λμ 무μμ΄ λ€λ₯ΌκΉ?
RunnableSample.java (Runnable μΈν°νμ΄μ€λ₯Ό ꡬνν κ²½μ°)
package e.thread; public class RunnableSample implements Runnable{ @Override public void run() { System.out.println("This is RunnableSample's run() method."); } }
ThreadSample.java (Thread ν΄λμ€λ₯Ό νμ₯ν κ²½μ°)
package e.thread; public class ThreadSample extends Thread{ public void run() { System.out.println("This is ThreadSample's run() method."); } }
RunThreads.java
package e.thread; public class RunThreads { public static void main(String[] args) { RunThreads threads = new RunThreads(); threads.runBasic(); } public void runBasic() { //Runnable μΈν°νμ΄μ€λ₯Ό ꡬνν RunnableSample ν΄λμ€λ₯Ό μ°λ λλ‘ λ°λ‘ μμν μλ μλ€. //λ°λΌμ, μ΄μ κ°μ΄ Thread ν΄λμ€μ μμ±μμ ν΄λΉ κ°μ²΄λ₯Ό μΆκ°νμ¬ μμν΄μ£Όμ΄μΌλ§ νλ€. RunnableSample runnable = new RunnableSample(); new Thread(runnable).start(); //Thread ν΄λμ€λ₯Ό μμλ°μ ThreadSample ν΄λμ€λ κ°μ²΄μ λ°λ‘ start() λ©μλλ₯Ό νΈμΆνμλ€. ThreadSample thread = new ThreadSample(); thread.start(); System.out.println("RunThreads.runBasic() method is ended."); } }
μμμ κ°λ μ±μ μν΄ μ½λμ μ£ΌμμΌλ‘ μ€λͺ μ μ¨λμμ΅λλ€.
λ¨Όμ run()μ΄λΌλ λ©μλλ μ°λ λκ° μνλλ μ°λ¦¬κ° ꡬννλ λ©μλλ₯Ό λ§νκ³ , start()λΌλ λ©μλλ μ°λ λλ₯Ό μμνλ λ©μλμ λλ€. κΈ°λ³Έμ μΌλ‘ Runnable μΈν°νμ΄μ€λ₯Ό ꡬννκ±°λ, Thread ν΄λμ€λ₯Ό νμ₯ν λμλ run() λ©μλλ₯Ό μμμ μΌλ‘ μμ±ν΄μΌλ§ νλλ°μ, νμ§λ§ μ°λ λλ₯Ό μμνλ λ©μλλ run()μ΄ μλ start()λ©μλμ λλ€. μ°λ¦¬κ° start() λ©μλλ₯Ό λ§λ€μ§ μμλ, μμμ μλ°μμ run() λ©μλλ₯Ό μννλλ‘ λμ΄ μμ΅λλ€.
λ€μ λ³Έλ‘ μΌλ‘ λμκ°μ, μμ μ½λμμμ²λΌ Runnable μΈν°νμ΄μ€λ₯Ό ꡬνν κ²½μ°μλ λ°λμ Thread ν΄λμ€μ μμ±μμ ν΄λΉ κ°μ²΄λ₯Ό μΆκ°νμ¬ μμν΄μ£Όμ΄μΌλ§ν©λλ€. νμ§λ§, Thread ν΄λμ€λ₯Ό νμ₯ν κ²½μ°, κ°μ²΄λ₯Ό μμ±ν΄μ λ°λ‘ λ©μλλ₯Ό νΈμΆνμ¬ μμν©λλ€.
κ·Έλ λ€λ©΄ μ μ΄λ κ² λκ°μ§ λ°©λ²μ μ 곡ν κΉ?
λ§μ½ μ΄λ€ ν΄λμ€κ° μ΄λ€ λ€λ₯Έ ν΄λμ€λ₯Ό extendsλ₯Ό μ¬μ©ν΄μ νμ₯ν΄μΌ νλ μν©μΈλ°, μ΄κ²μ μ°λ λλ‘ κ΅¬νν΄μΌνλ€κ³ μκ°ν΄λ΄ μλ€. κ²λ€κ° κ·Έ λΆλͺ¨ ν΄λμ€κ° Threadλ₯Ό νμ₯νμ§ μμ κ²½μ°λΌλ©΄, λ€μ€ μμμ΄ λΆκ°λ₯ν μλ°μμ μ΄λ»κ² μ΄κ²μ ν΄μΌν κΉμ?
λ°λΌμ, μ΄λ¬ν κ²½μ°μλ Runnable μΈν°νμ΄μ€λ₯Ό ꡬνν΄μ μ¬μ©νλ©΄ λ κ² κ°μ΅λλ€.
μ 리νμλ©΄, μ°λ λ ν΄λμ€κ° λ€λ₯Έ ν΄λμ€λ₯Ό νμ₯ν νμκ° μμ κ²½μ°μλ Runnable μΈν°νμ΄μ€λ₯Ό ꡬννλ©΄ λκ³ , κ·Έλ μ§ μμ κ²½μ°μλ μ°λ λ ν΄λμ€λ₯Ό μ¬μ©νλ κ²μ΄ νΈνκ² μ΅λλ€.
κ°μ¬ν©λλ€ :)
'κ°λ° > Java' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ