본문 바로가기

Development/Programming

[Java Design Patten] Thread per Message 패턴

이번 패턴을 간단하게 요약해서 이야기하면

"어떠한 명령이나 요구마다 새로 한개의 쓰레드가 할당되고 그 쓰레드가 처리를 실행한다."


역할은 Client, Host, Helper로 나눌 수 있다.


Client는 Request를 요구하는 역할이다. 여기선 Main이 담당


public class Main {

public static void main (final String[] args) {

final Host host = new Host();

host.request(10,'A');

host.request(20,'B');

host.request(30,'C');

}

}



Host는 Client로부터 Request를 받으면 새로운 Thread를 생성하는 역할


public class Host {

private final Helper helper = new Helper();

public void request (final int count, final char c) {

new Thread() {

public void run () {

helper.handle(count, c);

}

}.start();

}

}


Helper는 Request를 처리하는 역할을 담당한다.


public class Helper {

public void handle (final int count, final char c) {

for (int i=0;i<count;i++) {

try {

Thread.sleep(100);

System.out.println(c);

} catch (final InterruptedException e) {

e.printStackTrace();

}

}

}

}