InputStreamReader

gut ... da hast du mich scheinbar nicht ganz verstanden

erstmal : Pattern.match im kopf der while ? ... und DAVOR versucht ne zeile einzulesen ... nenene ... ganz falsche herangehens weise

richtig müsste es so aussehen

Java:
String l="";
while((l=in.readLine())!=null)
{
	if(!l.equals(""))
	{
		if(Pattern.matches(regex, l))
		{
			//TODO wenn eingelesen zeile mit der regex übereinstimmt
		}
	}
}

oder irgendwie so ... ich kenne mich mit regular expressions nich so aus

warum entsteht hier kein deadlock ?
nun ... du hast das if falsch gesetz ...
du kannst ja schlecht auf einen bool prüfen wenn du durch eine innere while nie wieder zu diesem punkt kommst ...
also musst du dafür sorgen das einmal in der while darauf geprüft wird ... und dann noch eine weitere while drum herum die dafür sorgt das nach dem ausstieg wieder eingestiegen wird ...
müsste dann ungefähr so aussehen

Java:
while(boolA) //status-bool für die gesamte Thread.run()
{
	if(!boolB) //konflikt-bool
	{
		while((l=in.readLine())!=null)
		{
			if(boolB)
				break;
			//code
		}
	}
}

damit sorgst du dafür das du das lesen komplett unterbrichst wenn boolB gesetz wird *achtung ... boolB muss true gesetz werden BEVOR die daten aus dem andere thread überhaupt erst angefordert werden* ... kannst aber nach dem rücksetzen wieder ganz normal weiter lesen und die nicht-angeforderten commandos lesen
im produktiven einsatz wird das alles noch etwas extrem komplizierter gehandhabt ... aber das ist eine sehr einfache methode

es gibt hier sehr schöne tutorials und beispiele zur verwendung von threads
ein gutes beispiel sind z.B. GUI-apps ...
wenn du eine GUI hast und auf der sagen wir mal ein paar button ... und du klickst auf einen button ... wird ja erst DANN die aktion ausgeführt die ausgeführt werden soll wenn man auf den button klickt ...
nebenbei allerdings läuft die GUI selbst weiter ...
und genau das wird mit Threads realisiert *glaub dem AWTEventDispatch-Thread-0 *korrigiert mich bitte wenn ich falsch liege**
zur lösung deines problems solltest du dich wirklich erstmal in Threads einarbeiten da diese die grundlage für eine a-synchrone kommunikation sind ... und zwar nicht nur übers netzwerk sondern generell über pipes ... *netzwerk-verbindungen sind in dem sinne auch nur übers netz getunnelte pipes ...*
wenn du dich also in threads eingearbeitet hast und verstehst wie prozesses a-synchron oder synchron parallel funktionieren können wir gerne noch mal auf dein problem zurück kommen ...
da wir ansonsten hier nur damit beschäftigt wären dir zu erklären was Threads sind und wie diese arbeiten um erstmal die grundlagen zu schaffen um dein problem zu lösen ...
 
Zurück