Просто убедитесь, что они подпадают под один метод, который помечен как @Transactional
.
Если после второго обновления произойдет сбой, первое будет откатано, и вы будете поддерживать базу данных в согласованном состоянии.
Вы испытываете необходимость в двух вещах. Вы хотите, чтобы Ваш поток в реальном времени получил приоритет и предпочтительно управлял им таймером, таким образом, Вы получаете (почти) периодические измерения. Затем Вы собираетесь хотеть ресурс, который может использоваться для передачи значений. Это может или быть простым монитором с критическим разделом, таким образом, поток таймера может записать в него, или это могло быть - и очень вероятно, будет лучше как - FIFO, так, чтобы поток GUI мог съесть значения каждый раз, когда он имеет циклы.
В Java GUI (по крайней мере, в Swing и подобный) уже выполняет отдельный поток для взаимодействий UI, таким образом, Вы - большая проблема, должен настроить Ваш измерительный поток. Взгляните на Runnables.
Для использования потоков в реальном времени, Вам нужен Оперативный Java в операционной системе реального времени. http://java.sun.com/javase/technologies/realtime/index.jsp
Однако, если у Вас есть поток, который является чувствительной задержкой, я предлагаю Вас;
Поскольку другие задействовали RTSJ, я прокомментирую эту синхронизацию между кодом в реальном времени и не в реальном времени имеет ряд решений. RTSJ предоставляет очередей без ожидания для такой связи. Также можно использовать эти или другие очереди и использовать абстракции RTSJ AsyncEvent
и AsyncEventHandler
для управления связью. Это подходит для ситуаций, когда вы действительно нуждаетесь в детерминированном поведении потока «в реальном времени».
Если вы можете принять поведение с максимальными усилиями (стараться изо всех сил, чтобы уложиться в сроки, но мир не развалится, если вы пропустите), я предлагаю осторожно опираться на среду executor, предоставленную утилитами параллелизма Java .