Оперативная синхронизация потока с нормальными потоками

Просто убедитесь, что они подпадают под один метод, который помечен как @Transactional.

Если после второго обновления произойдет сбой, первое будет откатано, и вы будете поддерживать базу данных в согласованном состоянии.

6
задан andersoj 29 March 2011 в 13:48
поделиться

3 ответа

Вы испытываете необходимость в двух вещах. Вы хотите, чтобы Ваш поток в реальном времени получил приоритет и предпочтительно управлял им таймером, таким образом, Вы получаете (почти) периодические измерения. Затем Вы собираетесь хотеть ресурс, который может использоваться для передачи значений. Это может или быть простым монитором с критическим разделом, таким образом, поток таймера может записать в него, или это могло быть - и очень вероятно, будет лучше как - FIFO, так, чтобы поток GUI мог съесть значения каждый раз, когда он имеет циклы.

В Java GUI (по крайней мере, в Swing и подобный) уже выполняет отдельный поток для взаимодействий UI, таким образом, Вы - большая проблема, должен настроить Ваш измерительный поток. Взгляните на Runnables.

4
ответ дан 16 December 2019 в 21:46
поделиться

Для использования потоков в реальном времени, Вам нужен Оперативный Java в операционной системе реального времени. http://java.sun.com/javase/technologies/realtime/index.jsp

Однако, если у Вас есть поток, который является чувствительной задержкой, я предлагаю Вас;

  • пользуйтесь библиотеками параллелизма в связи с другими потоками.
  • минимизируйте любое действие GC (особенно полный GCs)
  • не выполняйте поток в том же процессе как GUI, если Вы можете (поскольку он склоняется, захватывают много ресурсов способами, которыми Вы ограничили управление),
2
ответ дан 16 December 2019 в 21:46
поделиться

Поскольку другие задействовали RTSJ, я прокомментирую эту синхронизацию между кодом в реальном времени и не в реальном времени имеет ряд решений. RTSJ предоставляет очередей без ожидания для такой связи. Также можно использовать эти или другие очереди и использовать абстракции RTSJ AsyncEvent и AsyncEventHandler для управления связью. Это подходит для ситуаций, когда вы действительно нуждаетесь в детерминированном поведении потока «в реальном времени».

Если вы можете принять поведение с максимальными усилиями (стараться изо всех сил, чтобы уложиться в сроки, но мир не развалится, если вы пропустите), я предлагаю осторожно опираться на среду executor, предоставленную утилитами параллелизма Java .

2
ответ дан 16 December 2019 в 21:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: