Threads Thread mit verzögerung

airglide

Mitglied
Hallo zusammen,

Ich habe das Problem, dass ich zwei Threads habe. Der eine steuert einen Motor, der andere sollte Messungen nehmen. Das Problem ist nun, dass ich nach jeder Messung eine Pause einbauen muss.

Wenn ich es mit Thread.sleep() versuche, so wird der Motor Thread wie der Messung Thread pausiert (und der Motor läuft länger). Ich möchte jedoch, dass nur der eine Thread pausiert wird. Hat jemand eine Lösung für mein Problem?

dankee

airglide
 
meiner Meinung nach laufen nicht die beiden gleichzeitig, jedoch ist es nicht so, dass Thread.sleep() den aktuellen Thread "schlafen legt" und ich nicht wirklich bestimmen kann welcher das ist?
 
Es wird der Thread lahm gelegt, auf dem du das aufrufst. Wenn du das auf dem EDT aufrufst, dann wird dieser schlafen gelegt.

Wenn du einen neuen Thread startest und dieser dann die Methode aufruft, wird dieser eben lahm gelegt.
 
Thread.sleep() legt ausschließlich den aktuellen Thread schlafen. Wie startest du deine Threads?
 
Java:
new Thread(){
			public void run() {
			
				for (int i = 0; i < numberLsrMes; i++)
				{
					writeArray[i]=sens.getDistance()/10.0;// 39ms
					try {
						Thread.sleep(461);
					} catch (InterruptedException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					} // tot 0.5s
				}					 
				
			}}.start();
[/Java]

folglich sollte sleep den neuen thread lahm legen, ergo läuft dieser auf dem Thread mit dem Motor?
muss ich also bloss einen anderen Thread erstellen und da die Steuerung des Motores abwickeln?

danke airglide
 
der Motor sollte auch durchgehend laufen, es ist so, dass der Motor einen Sensor dreht und der zweite Thread sollte dann die Messungen auslesen..

ich versuche einmal mein glück 😉 und meld mich wieder

danke airglide
 
ich denke es hat grundsätzlich funktioniert. Ist es möglich, dass eine Methode beendet wird obwohl die Threads noch nicht fertig gestorben sind?

danke airglide
 
das ist klar, aber wenn ich den Thread in einer Methode drin erstelle, kann es sein dass die Methode beendet wird, mein Programm weiterläuft obwohl der Thread noch am laufen ist?
und wie kann ich das verhindern?
 
Wenn du einen neuen Thread erstellst und diesen startest, dann arbeitet der Thread, auf dem du diesen erstellst, natürlich weiter. Dieser Thread hat dann natürlich nichts mit dem zu tun, was du da in dem neuen machst und wartet dann natürlich nicht auf diesen.

Habe ich deine Frage richtig verstanden?
 

Zurück
Oben