Guten Morgen,
ich habe mich in die Funktionalität der Threads eingelesen und probiere etwas rum.
Ich habe einen Thread, der alle Anfragen von Usern abarbeitet. Gelegentlich muss dieser eine http-Abfrage machen. Nun habe ich bemerkt, dass das ganze System bzw. der ganze Thread hängt und ich lande im Debugger beim Pausieren immer bei den http-Abfrage-Methoden.
Nun habe ich mir einen neuen Thread erstellt, wie es vorgegeben wird mit der standardmäßigen run()-Methode.
Aufruf im Constructor des Hauptthreads:
Bei Bedarf frage ich dann in weiteren Methoden des Hauptthreads die Methode macheRequest ab,
Fragen:
- Ist das so machbar, dass ich eigene Methoden verwende und den Thread mit run() einfach immer laufen lasse?
- Erfüllt es seinen Zweck, d.h. würde der Hauptthread nach der Abfrage weiterlaufen, auch wenn die Methode des neuen Threads noch beschäftigt ist?
- Was wäre eigentlich wenn die Methode macheRequest einen Rückgabewert liefert? Wird dann solange gewartet?
Danke im Voraus für jeden Tipp
ich habe mich in die Funktionalität der Threads eingelesen und probiere etwas rum.
Ich habe einen Thread, der alle Anfragen von Usern abarbeitet. Gelegentlich muss dieser eine http-Abfrage machen. Nun habe ich bemerkt, dass das ganze System bzw. der ganze Thread hängt und ich lande im Debugger beim Pausieren immer bei den http-Abfrage-Methoden.
Nun habe ich mir einen neuen Thread erstellt, wie es vorgegeben wird mit der standardmäßigen run()-Methode.
Java:
public class internetabfrageThread extends Thread
{
public void run() {
int i=1;
while(i==1) {
try {
sleep(500);
}
catch(InterruptedException e) {
}
}
}
public void macheRequest(User pEmpfaenger, String pWebseite)
{
// hier wird nun eine Abfrage gemacht und bei Bedarf dem User die Antwort gesendet
}
}
Aufruf im Constructor des Hauptthreads:
Java:
internetabfrageThread abfrageCronjob = new internetabfrageThread();
Fragen:
- Ist das so machbar, dass ich eigene Methoden verwende und den Thread mit run() einfach immer laufen lasse?
- Erfüllt es seinen Zweck, d.h. würde der Hauptthread nach der Abfrage weiterlaufen, auch wenn die Methode des neuen Threads noch beschäftigt ist?
- Was wäre eigentlich wenn die Methode macheRequest einen Rückgabewert liefert? Wird dann solange gewartet?
Danke im Voraus für jeden Tipp