Threads beenden

Status
Nicht offen für weitere Antworten.

andy0566

Mitglied
Hallo,

ich habe ein Problem mit ThreadBeenden.
Hier ist meine ThreadKlasse:
Code:
public class ThreadText extends Thread{
	String m_Msg;
	public ThreadText(String msg){
		m_Msg=msg;
	}
	public void run(){
		while(true){
			System.out.println(m_Msg);
			try{
				
				//Thread.sleep(1000);
				Thread.sleep((int)(Math.random()*1500));
			}catch(InterruptedException e){
			}
		}
		
	}public static void main(String[]args){
		ThreadText a=new ThreadText("Moin...!!");
		ThreadText b=new ThreadText("juhu...");
		a.start();
		b.start();
	}
	
}
Wie kann ich alle Threads beenden,sobald einer der Threads 1000 mal den übergebenen String ausgegeben haben.
(WICHTIG: das Problem darf nicht mit System.exit beendet werden.)
 
B

Beni

Gast
Mit einem synchronisierten Zähler arbeiten:

Code:
public class Counter{
  public int count = 0;
}

Code:
public class ThreadText extends Thread{
   private Counter counter;
   private String m_Msg;

   public ThreadText(String msg, Counter counter){
      m_Msg=msg;
      this.counter = counter;
   }
   public void run(){
      while(true){
         synchronized( counter ){
           counter.count++;

           if( counter.count >= 1000 )
             return;

           System.out.println(m_Msg);
         }
         try{
            
            //Thread.sleep(1000);
            Thread.sleep((int)(Math.random()*1500));
         }catch(InterruptedException e){
         }
      }
      
   }public static void main(String[]args){
      Counter c = new Counter();
      ThreadText a=new ThreadText("Moin...!!", c);
      ThreadText b=new ThreadText("juhu...", c);
      a.start();
      b.start();
   }
   
}

P.S. das ist nur so schnell hingeschrieben, habs nicht getestet, und schöner Code ist es auch nicht :bae:
 

andy0566

Mitglied
Wer weiß,wie folgender Code in oberer Klasse funtioniert ?
Code:
public void run(){
		while(!isInterrupted()){
			
				System.out.println(m_Msg);
				
				try{
						Thread.sleep((int)(Math.random()*1000));
				}catch(InterruptedException e){
					interrupted();
				}
			
		}
		
	}
 

foobar

Top Contributor
Code:
public void run()
{
      while(!isInterrupted())   // solange der Thread nicht interrupted wurde
      {
            System.out.println(m_Msg); // String ausgeben
            try
            {
                  Thread.sleep((int)(Math.random()*1000)); // zufäliige Anzahl Millisekunden schlafen
            }
            catch(InterruptedException e)
            {
               interrupted();  // Falls eine Exception fliegt, Thread beenden
            }
    }
 }
 

Icewind

Bekanntes Mitglied
mit Benis Lösung würden die Threads doch beendet werden wenn beide zusammen schon mehr als 1000 mal die ausgabe gemacht haben oder??
 

muddin

Mitglied
Hi!

Code:
public class ThreadTest extends Thread
{ 
	private String m_Msg; 

	private static ThreadGroup thrG;

	public ThreadTest(String msg,ThreadGroup tg)
	{       
		super(tg,"Thread"); 
		m_Msg=msg; 
	} 

	public void run()
	{ 
		int counter = 0;
		while(true)
	    { 
	
    		System.out.println(m_Msg);
            
            if( counter >= 1000)
            {
            	thrG.interrupt();
            	return;
            }
	
	          
	        try
	        { 	            
				Thread.sleep((int)(Math.random()*1500)); 
			}
			catch(InterruptedException e)
			{ 
				return;
			}
	    	counter++; 
	    }
	} 
	
	public static void main(String[]args)
	{ 
      int c = 0;
      
      thrG = new ThreadGroup("1");
      
      ThreadTest a=new ThreadTest("Moin...!!",thrG); 
      ThreadTest b=new ThreadTest("juhu...",thrG);
      
      a.start(); 
      b.start(); 
            
   } 
    
}

Wenn man die Threads einer Thread-Gruppe zuweist, werden einfach alle Threads der Gruppe unterbrochen, sobald irgendein Thread 1000mal den String ausgegeben hat.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
L Threads beenden Allgemeine Java-Themen 4
S Start des zweiten Threads erst nach Beenden des ersten Threads Allgemeine Java-Themen 13
A Applet Alle Threads beim schließen des Applets beenden Allgemeine Java-Themen 8
K Warum wartet diese Funktion auf beenden des Threads? Allgemeine Java-Themen 3
S [THREADS] Thread sinnvoll beenden Allgemeine Java-Themen 2
G Threads Beenden Allgemeine Java-Themen 5
S AWT Threads richtig beenden! Wie? Allgemeine Java-Themen 9
rode45e Java Threads Allgemeine Java-Themen 4
M Threads Allgemeine Java-Themen 1
L Threads Threads in Chatroom Allgemeine Java-Themen 30
berserkerdq2 run-methode eines Threads so programmieren, dass 30x die Sekunde etwas ausgeführt wird. Allgemeine Java-Themen 44
berserkerdq2 Threads, wie genau läuft das in Java ab? (Ich kann Threads erstellen und nutzen, nur das Verständnis) Allgemeine Java-Themen 6
CptK Backpropagation parallelisieren: Kommunikation zwischen den Threads Allgemeine Java-Themen 7
J Eine Frage zu den Threads und Task Allgemeine Java-Themen 1
W Wieviele Threads sind sinnvoll? Allgemeine Java-Themen 8
W Alternative für Threads Allgemeine Java-Themen 6
V Threads Probleme beim Aufrufen von Methoden einer anderen Klasse (Threads) Allgemeine Java-Themen 14
T Multithreading: Wie viele Threads sollte ich erstellen? Allgemeine Java-Themen 12
G Threads vom Mainprogramm steuern Allgemeine Java-Themen 8
S BlockingQueue mit dynamischer Anpassung der Anzahl von Producer und Consumer Threads Allgemeine Java-Themen 1
x46 Threads Threads anhalten Allgemeine Java-Themen 1
J Threads verbessern die Performance NICHT ? Allgemeine Java-Themen 8
W Threads Problem Allgemeine Java-Themen 15
T Threads Tic Tac Toe mit Threads Allgemeine Java-Themen 1
M Threads über Kommandozeile Allgemeine Java-Themen 5
mrbig2017 Threads Chat Programm mit Threads? Allgemeine Java-Themen 2
J Threads - java.lang.IllegalThreadStateException Allgemeine Java-Themen 6
J Internet Broswer in Threads öffnen Allgemeine Java-Themen 1
B Threads Multithreading Threads sollen warten Allgemeine Java-Themen 12
N 1000 MQTT Messages die Sekunde - 1000 Threads erstellen ? Allgemeine Java-Themen 10
D Threads Parallel laufende Threads Allgemeine Java-Themen 4
J Unvorhersehbares Verhalten - benutze ich die falsche Bedingungsprüfung oder brauche ich Threads? Allgemeine Java-Themen 12
D Eine Forschleife mit Threads abarbeiten um es zu schneller zu machen. Ist das möglich? Allgemeine Java-Themen 20
S Wie kann ich eine kleine Stelle in meinem Code mit multiplen Threads abarbeiten..? Allgemeine Java-Themen 20
P Threads Parallelisierte DB-Abfragen mit variabler Anzahl an Threads Allgemeine Java-Themen 4
J Threads Threads Allgemeine Java-Themen 9
Viktim Threads Liste In unterschiedlichen Threads bearbeiten Allgemeine Java-Themen 23
E Threads Ausführung in Threads ist langsamer als ohne Threads Allgemeine Java-Themen 13
A Anzahl an Threads Systemweit Allgemeine Java-Themen 2
Tausendsassa Input/Output Problem mit der gleichzeitigen Ausgabe zweier Threads Allgemeine Java-Themen 8
S Alle Methodenaufrufe eines Threads notieren..? Allgemeine Java-Themen 7
M Threads JPanel eingeforen mit Threads Allgemeine Java-Themen 2
F Threads Allgemeine Java-Themen 6
F Threads Allgemeine Java-Themen 2
M Sinn von Threads? Allgemeine Java-Themen 1
J Wie erschaffe ich einen sicheren Datenaustausch zwischen Thread und Nicht-Threads Allgemeine Java-Themen 8
L Abfragen ob Threads fertig Allgemeine Java-Themen 3
P Threads Java Zugreifen Allgemeine Java-Themen 6
K Problem: Java-Klasse mit mehreren Threads als eigenen Prozess starten Allgemeine Java-Themen 3
K KeyEvent in Threads Allgemeine Java-Themen 11
V Threads Weshalb funktionieren meine Threads nicht? Allgemeine Java-Themen 2
Thallius Speicherverhalten von Properties und mehreren Threads Allgemeine Java-Themen 5
P Threads Threads nicht gleichzeitig starten Allgemeine Java-Themen 3
S Threads Threads werden nicht beendet Allgemeine Java-Themen 2
N Threads statische Methoden in Threads Allgemeine Java-Themen 5
P 4 Threads in einer Methode Allgemeine Java-Themen 2
M Eclipse Mehrere Threads, mehrere Konsolen Allgemeine Java-Themen 4
OnDemand Threads und synchronized Allgemeine Java-Themen 9
R LinkedList und Threads: Strukturprobleme bez. löschen von Elementen Allgemeine Java-Themen 3
R LinkedList und Threads - welche Methode ist besser? Allgemeine Java-Themen 2
OnDemand Threads und synvhronized Allgemeine Java-Themen 2
S Problem mit Threads Allgemeine Java-Themen 1
W Threads Threads warten lassen Allgemeine Java-Themen 5
H Optimierung durch Threads Allgemeine Java-Themen 31
B Threads halten sich irgendwie auf... Allgemeine Java-Themen 6
M Threads Allgemeine Java-Themen 8
K JNI: Methoden aus unterschiedlichen Threads aufrufen Allgemeine Java-Themen 3
A Problem mit der Synchronisierung von Threads Allgemeine Java-Themen 15
R SecurityManager für einzelne Klassen/Threads? Allgemeine Java-Themen 38
O Threads und If Befehle Allgemeine Java-Themen 7
P Threads abwechseln lassen mit wait() und notify() Allgemeine Java-Themen 2
H Sehr viele Threads effizient Verwalten Allgemeine Java-Themen 13
C Threads und Exceptions Allgemeine Java-Themen 7
H java.lang.OutOfMemoryError bei der wiederholten Erzeugng von Threads Allgemeine Java-Themen 8
S Threads Abarbeitungsstatus von Threads in Datei schreiben Allgemeine Java-Themen 2
M Zugriff zweier Threads auf diesselbe Methode Allgemeine Java-Themen 16
E Threads Sudoku Threads Allgemeine Java-Themen 8
M Java Threads - Wait Notify - Verständnisproblem Allgemeine Java-Themen 5
Gossi Threads mit unterschiedlichen Aufgaben in einer Klasse? Allgemeine Java-Themen 9
G Threads Ablauf von Threads im Spezialfall Allgemeine Java-Themen 4
V Threads bei quadcore Allgemeine Java-Themen 10
V 1000 Threads oder Iterativ? Allgemeine Java-Themen 11
4 Simple(?) Frage zu Threads Allgemeine Java-Themen 14
B Threads Game of Life - Threads Allgemeine Java-Themen 49
R Threads Exceptions von Threads abfangen im ThreadPool Allgemeine Java-Themen 5
S Threads Ende sämtlicher Threads abwarten Allgemeine Java-Themen 6
S Frage zu Threads (Sichtbarkeit und Verhalten) Allgemeine Java-Themen 11
M Java-Threads und Datentypen-Zugriffe Allgemeine Java-Themen 7
P Threads- Programming Allgemeine Java-Themen 2
G Threads Klasse Sound und Threads bleiben hängen Allgemeine Java-Themen 4
C Threads Zwei Threads greifen auf LinkedList zu. Allgemeine Java-Themen 12
M OutOfMemoryError in nebenläufigen Threads Allgemeine Java-Themen 6
M Threads dauerhafte bewegung mit threads Allgemeine Java-Themen 11
frankred Threads Auf eine Gruppe von Threads warten Allgemeine Java-Themen 11
J Eure Meinung: Threads verwenden, oder nicht? Allgemeine Java-Themen 6
F Mehrere Threads - ein Stack Allgemeine Java-Themen 6
O Wie kann ich das Ende eines Threads melden? Allgemeine Java-Themen 7
J Writer und Threads Allgemeine Java-Themen 2
G mehrere Threads starten/stoppen Allgemeine Java-Themen 4
E Verständnisfrage bezüglich Threads Allgemeine Java-Themen 4

Ähnliche Java Themen

Neue Themen


Oben