Ursprungligen inskrivet av badboll
Ett annat alternativ är att använda Atomic*-klasserna i java.util.concurrent.atomic. Om sensordatan kommer i form av flyttal krävs det lite enkla knep för att lagra informationen i en AtomicInteger (för floats) eller AtomicLong (för double), se kodexemplet nedan. Jag tycker att det skulle vara att föredra framför såväl monitorer som finlir med wait/notify. Om du fortfarande är inne på tanken med ha sensordatan i en array, varför inte en AtomicLongArray?
AtomicLongArray ala = new AtomicLongArray(3);
ala.set(0, Double.doubleToLongBits(1.23456));
ala.set(1, Double.doubleToLongBits(2.34567));
ala.set(2, Double.doubleToLongBits(3.45678));
double d0 = Double.longBitsToDouble(ala.get(0)); // d0 = 1.23456
double d1 = Double.longBitsToDouble(ala.get(1)); // d1 = 2.34567
double d2 = Double.longBitsToDouble(ala.get(2)); // d2 = 3.45678
Om jag förstått ditt scenario rätt, kan detta gott och väl räcka? Det känns också som den enklaste formen av trådsäkring man kan göra.