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
 
Zurück