본문 바로가기

JAVA/JAVA

자바 개념 - 멀티 쓰레드(Thread) 프로그래밍 설명 및 간단한 예제

반응형

** 멀티 쓰레드(Thread) 프로그래밍


: 자바프로그램에서 어떤 일처리를 위한 것을 메소드로 표현되는 것이 일반적이다.


p1.sayHello();

p2.sayHello();


위의 문장을 실행하면 p2는 p1의 sayHello()가 끝날때까지 대기해야 한다.

만약 그속의 문장이 복잡하거나 문제가 발생이 된다면 p2는 끝없이 기다려야 하거나 자신에게 기회가 오지 않을 수도 있다.


이때 가능하면 p1과 p2에게 공평하게 실행할 기회를 주고자 한다면 'Thread'를 이용한다.


자바는 이와같이 멀티쓰레드 프로그래밍을 위하여 아래와 같이 제공한다.

Thread 클래스와 Runnable 인터페이스를 제공한다.




** 필요성을 느끼기 위한 예제


// 밑에 예제의 같은 경우 p1의 실행이 끝나야 p2가 진행되는데 

// 만약 p1 이 끝나지 않는다면 p2에게는 기회가 없을 것이다.

// 똑같은 기회를 주기 위해 사용하는 것이 '멀티쓰레드'

class Person{

private String name;


public Person(String name){

this.name = name;

}

public void sayHello(){

for (int i =1; i <= 100000 ; i++ ){

System.out.println("Hello, " + name);

}

}

}


class  PersonTest{

public static void main(String[] args) {

Person p1 = new Person("홍길동");

Person p2 = new Person("강감찬");


p1.sayHello();

p2.sayHello();

}

}

반응형