Zwei Threads. Warum werden beide beendet?

F22

Grünschnabel
Hi

ich habe folgendes Problem. Ich habe in einer Klasse intern 2 Threads deklariert und instanzitiert aber wenn ich einen dieser beiden Threads beende werden beide geschlossen, obwohl ich möchte dass der andere weiterläuft. Ich finde leider den Fehler nicht. :(

Hat jemand vl ne idee?
Code:
public class SysInfo extends JFrame
{
	private static care thread_control;
	private static time thread_time;
	....
        
        SysInfo(String title) throws ClassNotFoundException, InstantiationException, IllegalAccessException, UnsupportedLookAndFeelException, AWTException
	{
                ...
                thread_time = new time();
                ....
  		button.addActionListener(new ActionListener() {

                       public void actionPerformed(ActionEvent event) {
            	            	
                	//chart.setVisible(true);      	
                        thread_control = new care();
                        thread_control.start();
                      // cb1.setState(true);
                }
                });
		
		chart = new JChart("Workload");
		
		
		class CMeinWindowLauscher extends WindowAdapter
		{			
			public void windowClosing(WindowEvent e)
			{
				//chart.setVisible(false);
				//cb1.setState(false);
				thread_control.suspend();
				
			}
		}
    	chart.addWindowListener(new CMeinWindowLauscher());
        }

       public static void main(String[] args) throws Exception 
       {
             ...
             thread_time.start();
             
       }

       class care extends Thread
    {
    	public void run()
    	{
    		while(true)
                {
                         ....		
                }
    	 }
    }
    
    class time extends Thread
    {
    	public void run(){
    		while(true)
    		{
    			...
    		}
    	}
    }
}



Danke für die Hilfe
xD
 
Zuletzt bearbeitet:
Sorry, dein Code ist höchst unverständlich.

Erstens - Klassennamen schreibt man im CamelCase mit dem ersten Buchstaben als Großbuchstaben.

Zweitens Threads stoppen macht man in der Regel über einen Flag

Java:
class Time extends Thread {
   private volatile boolean isStopped = false;

  public void run(){
     while(!isStopped){
     // do something
   }
  }
  public void stopThread(){
      this.isStopped = true;
  }
}

Was soll dein Programm den überhaupt machen?
 
Ja entschuldigung ich bin Schüler also bitte ein bisschen Nachsicht. xD
Hab noch nicht soviel Erfahrung.
Vielen Dank für die Hilfe
 

Neue Beiträge

Zurück