Wie gehe ich mit mehreren Threads in einer Klasse um?
Threads werden oft auf zwei Arten entworfen (Siehe Java-Tutorials): entweder durch Erweitern der Thread-Klasse oder durch Implementieren der Runnable-Klasse. In beiden Fällen müssen Sie angeben, was im Thread ausgeführt werden soll.
Ich habe eine Klasse entworfen, einen Adapter für eine Online-Ressource, die verschiedene Arten von Informationen abruft. Diese Klasse besteht aus Methoden wie getInformationOfTypeA () und getInformationOfTypeB (). Beide enthalten Code zum Herstellen einer Verbindung mit Online-Ressourcen, sodass beide Threads verwendet werden müssen, um Deadlocks zu vermeiden.
Die Frage ist: Wie soll ich das gestalten? Ich kann es wie folgt machen, aber dann kann ich nur eine Methode implementieren:
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
}
}
Ein anderer Weg wäre, separate Klassen für jede Methode zu erstellen, aber das erscheint mir unnatürlich.
Btw: Ich entwickle meine Anwendung in j2me
AKTUALISIEREN:
Aufgrund Ihrer Antworten ist es meines Erachtens am besten, Folgendes als Methode zu verwenden:
Was denkst du über dies:
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();
}
}
Was denkst du über dies?