Я работаю над стандартной системой Java с критическими требованиями к времени для моих производителей (1/100 мс мс).Какая очередь блокировки Java наиболее эффективна для однопользовательских однопользовательских сценариев
У меня есть продюсер, размещающий материал в блокирующей очереди, и один потребитель позже подбирает этот материал и сбрасывает его в файл. Потребитель блокирует, когда данные недоступны.
Очевидно, что блокировка очереди - это соответствующий интерфейс, но какую фактическую реализацию я должен выбрать, если я хочу, чтобы минимизировал стоимость для производителя? Я хотел играть как можно меньше на таких вещах, как блокировка и распределение, когда я помещаю вещи в очередь, и я не против, если потребитель должен ждать намного дольше или работать намного сложнее.
Есть ли реализация, которая может быть быстрее, потому что у меня есть только один потребитель и единственный производитель?
Вы рассматривали покупку в режиме реального времени виртуальной машины Java? Он имеет специальные расширения, помогающие достичь таких критических временных рамок. http://java.sun.com/javase/technologies/realtime/index.jsp –
@Rastislv: Я согласен, что RT JVM будет лучше. Однако это уже существующая система, и большинство клиентов используют стандартные JVM; Мне нужно провести сравнительный анализ с минимальным воздействием, и я измеряю разделы, которые принимают 1/100 мс. – Uri
. Вместо обычной очереди используйте [LMAX disruptor] (https://lmax-exchange.github.io/disruptor/). –