스레드는 종종 Thread 클래스를 확장하거나 Runnable 클래스를 구현하여 두 가지 방법 (see java tutorials)으로 설계됩니다. 어느 쪽이든, 스레드 내에서 실행될 것을 지정해야합니다.하나의 클래스에서 여러 스레드를 다루는 방법은 무엇입니까?
나는 다양한 종류의 정보를 검색하는 온라인 리소스를 향한 어댑터 인 클래스를 디자인했다. 이 클래스는 getInformationOfTypeA() 및 getInformationOfTypeB()와 같은 메소드로 구성됩니다. 둘 다 온라인 리소스에 연결하는 코드를 포함하므로 교착 상태를 피하기 위해 두 가지 모두 스레드되어야합니다.
질문은 : 어떻게 설계해야합니까? 나는 아래처럼 할 수있다, 그러나 나는 단지 하나의 방법 구현할 수 : 각 방법에 대해 별도의 클래스를 만들어 것이다
public class OnlineResourceAdapter implements Runnable {
public void run() {
//get stuff from resource
getInformationOfTypeA();
}
public static void main(String args[]) {
(new Thread(new OnlineResourceAdapter())).start();
}
public void getInformationOfTypeA(){
//get information of type A
}
public void getInformationOfTypeB(){
//get information of type B
}
}
또 다른 방법은, 그러나 그것은 나에게 부 자연스럽게 보인다.
는 Btw는 : 나는 J2ME에 내 응용 프로그램을 개발하고 있어요
UPDATE :
: 답변에덕분에 나는이 방법으로 다음과 같은 것을 사용하는 대부분의 양복지 생각
당신은 어떻게 생각하십니까 :
public class OnlineResourceAdapter{
public void getInformationOfTypeA(){
Thread t = new Thread(new Runnable() {
public void run() {
//do stuff here
}
});
t.start();
}
public void getInformationOfTypeB(){
Thread t = new Thread(new Runnable() {
public void run() {
//do stuff here
}
});
t.start();
}
}
뭐 이거 생각해?
danben이 내 의견을 반향합니다. 전략 패턴은 당신이 바라는 것 중 하나입니다. 분리 된 클래스를 갖는 것이이 경우에 나에게 깨끗한 방법처럼 보입니다. – Aadith