Inhalt einer Variable auswerten, die sich immer wieder ändert

Fohnbit

Top Contributor
Hallo,

Ich ändere immer wieder eine Integer Variable Y.
Wenn eine Änderung stattfindet, soll ein Timer starten, der nach x Millisekunden den Wert nimmt und weiter verarbeitet.
Innerhalb der Wartezeit lösen weitere Änderungen an der Variable Y keinen neuen Timer aus.
Wenn die Abarbeitung durch den "Worker" fertig ist, soll wieder auf einen neue Änderung gewartet werden.

Wie started man bei so etwas?

Ich habe zwar mal mit Hilfe hier einen Consumer/Producer gebaut, aber das trifft hier nicht zu, da immer nur ein Wert gehalten wird, welcher sich ändert.

Danke!
 
Ich habs so mal hinbekommen:
Java:
boolean busy;
int sa16Status = 0;

	public void setSa16Status(int sa16Status) {
		this.sa16Status = sa16Status;
	}

	public boolean sendChannel(int channel, boolean value) {
		// Hier wird die Variable geändert
                if (value) {
			setSa16Status(sa16Status | (1 << channel - 1));
		} else {
			setSa16Status(sa16Status & ~(1 << channel - 1));
		}
                // hier wird geprüft, ob der Timer schon läuft
		if (!busy) {
                        // Wenn nicht, den Timer mit sSetValue(50) starten
			busy = true;
			sSetValue(50);
		}
		return true;
	}

	public boolean sSetValue(int delay) {
		sSPData = executor.schedule(new Runnable() {
			public void run() {
				sSetValue();
			}
		}, delay, TimeUnit.MILLISECONDS);
		return true;
	}

Kann da passieren das der Timer zur selben zeit auf die Variable zugreift? Und wie behandelt man das?

Danke!
 

Zurück
Oben