Thread läuft nicht?!

richiking

Mitglied
Hallo,


hab ein Problem bei dem ich irgendwie die Logik nicht versteh....

Habe einen Thread den ich so starte:

Java:
vcharge_l = new vitali_charge(vc_l,this);
charge_l = new Thread(vcharge_l);
charge_l.setName("Charge");
charge_l.start();
System.out.println(charge_l.getState());

Console zeigt mir auch brav "RUNNABLBE"

der Thread selber schaut wiefolgt aus:

Java:
public void run()
	{
		 System.out.println("Test"); 
		get_charge();
	        
	        try{
    			Thread.sleep(2);
    		}
    		catch (Exception e) {

    			e.printStackTrace();
    		}
	}


Müsste er jetzt nun rein logisch gesprochen nicht immer "Test" in die Konsole schreiben alle 2 ms???
 
War wohl zu voreilig...

Java:
public void run()
	{
		while(true)
		{
		System.out.println("Test"); 
		get_charge();
		System.out.println("Geschafft"); 
	        try{
    			Thread.sleep(1000);
    		}
    		catch (Exception e) {

    			e.printStackTrace();
    		}
		}
	}
	
	
	public void get_charge()
	{
		ByteBuffer buffer = ByteBuffer.allocate(3000);
	    

		vconn.write(0x55);
		vconn.write(0x07);
		vconn.write(0x00);
	        
	        try {
	            while (in.read(buffer)>0) 
	            {

	                buffer.flip();
	               
	                while (buffer.hasRemaining()
	                        && buffer.remaining() >= (header.length + realdata.length)) {
	                    buffer.mark();
	                    byte b = buffer.get();
	                   
	                    if (b == header[0]) 
	                    {
	                        buffer.reset();                                               
	                        buffer.get(currentHeader);
	                        
	                        if (Arrays.equals(header, currentHeader)) 
	                        {
	                            buffer.get(realdata);  
	                            System.out.println(Arrays.toString(realdata));                            	                          	                         
	                            
	                        } 
	                        else 
	                        {
	                            buffer.reset();
	                            buffer.get();
	                        }
	                    }
	                }
	                buffer.compact();
	            }
	           
	            
	        } catch (IOException e) {
	            e.printStackTrace();
	        }
	}


Jetzt scheint es aber ein Problem mit der Methode get_charge() zu geben. Es wird zwar der Thread gestartet aber es erscheint nie ein "Geschafft" weder würde er das ganze artig wiederholen.

Hilfe ;(
 
Ja zumindest bleibt er da immer hängen... hab jetzt einfach die while schleife weggelassen und ihm einfach ein normales read gegeben... macht auch wenn man nachdenkt mehr sinn... es können ja keine daten mehr ankommen...


vielen dank!
 

Neue Themen


Zurück
Oben