λμνκ³ μλ νλ‘κ·Έλ¨μ νλ‘μΈμ€ (Process) λΌκ³ νλ€.
ν κ°μ νλ‘μΈμ€μμλ ν κ°μ§μ μΌμ νμ§λ§
μ€λ λ(Thread) λ₯Ό μ΄μ©νλ©΄ νλμ νλ‘μΈμ€ μμ λ κ° μ΄μμ μΌμ λμμ μ§νν μ μλ€.
public class Sample extends Thread {
public void run() { // Thread λ₯Ό μμνλ©΄ run λ©μλλ₯Ό ꡬνν΄μΌ νλ€.
System.out.println("thread run.");
}
public static void main(String[] args) {
Sample sample = new Sample();
sample.start(); // start()λ‘ μ°λ λλ₯Ό μ€ννλ€.
}
}
μ΄λ€ ν΄λμ€μμ μ€λ λλ₯Ό μμ λ°μΌλ©΄ run () λ©μλλ₯Ό ꡬνν΄μΌ νλ€.
main λ©μλμμ start ν΄μ€λ€.
λ©μΈ λ©μλμμ start λ₯Ό ν΄μ£Όλ μκ°, μ€λ λμ μλ run μ΄ μλλλ μ리μ΄λ€.
λ©μΈ λ©μλκ° μ’
λ£λμ΄λ μ€λ λλ λμνλ€.
λμμ μμν΄λ μμλ 보μ₯λμ§ μκ³ , λκ°μ΄ λμνλ μ€λ λλ₯Ό λμμ 10κ°λ₯Ό μ€νμμΌ°μ λ
μ΄λ€ μ€λ λκ° λ¨Όμ λλ μ§λ λͺ¨λ¦.
μ€λ λλ₯Ό μ°¨λ‘λλ‘ μ€νμν€κ³ μΆμΌλ©΄ ?
join μ κ±Έλ©΄ λλ€.
import java.util.ArrayList;
public class Sample extends Thread {
int seq;
public Sample(int seq) {
this.seq = seq;
}
public void run() {
System.out.println(this.seq+" thread start.");
try {
Thread.sleep(1000);
}catch(Exception e) {
}
System.out.println(this.seq+" thread end.");
}
public static void main(String[] args) {
ArrayList<Thread> threads = new ArrayList<>();
for(int i=0; i<10; i++) {
Thread t = new Sample(i);
t.start();
threads.add(t);
}
for(int i=0; i<threads.size(); i++) {
Thread t = threads.get(i);
try {
t.join(); // t μ°λ λκ° μ’
λ£ν λκΉμ§ κΈ°λ€λ¦°λ€.
}catch(Exception e) {
}
}
System.out.println("main end.");
}
}
μ€λ λ κ°μ²΄ t νλμ© μ€νλλ€.
κ° μ€λ λ μμ μλ run () μ€νμ΄ μλ£ λλ©΄ κ·Έ λ€μ μ€λ λκ° μ€ν λ¨.
tcp ν΅μ μΌλ‘ μλ° μ½μμ°½μ μ±ν
λ°© ꡬννκ³ μλλ°
μ€λ λ κ°λ
μ ν·κ°λ €νλ κ² κ°μμ κ°μ₯ κΈ°μ΄μ μΈ μ€λ λ κ°λ
λΆν° λ€μ λ΄€λ€. κ·Όλ° μ±ν
λ°© ꡬνν λ join μΈ μΌμ μμλ κ±° κ°μλ°..