Low Latency Primitive Concurrent Queues

An low latency, lock free, primitive bounded blocking queue backed by an int[]. This class mimics the interface of {@linkplain java.util.concurrent.BlockingQueue BlockingQueue}, however works with primitive ints rather than objects, so is unable to actually implement the BlockingQueue. This class takes advantage of the Unsafe.putOrderedObject, which allows us to create non-blocking code with guaranteed writes. These writes will not be re-orderd by instruction reordering. Under the covers it uses the faster store-store barrier, rather than the the slower store-load barrier, which is used when doing a volatile write. One of the trade off with this improved performance is we are limited to a single producer, single consumer.

Лицензия

Лицензия

Группа

Группа

uk.co.boundedbuffer
Идентификатор

Идентификатор

low-latency-primitive-concurrent-queues
Последняя версия

Последняя версия

1.0.0
Дата

Дата

Тип

Тип

jar
Описание

Описание

Low Latency Primitive Concurrent Queues
An low latency, lock free, primitive bounded blocking queue backed by an int[]. This class mimics the interface of {@linkplain java.util.concurrent.BlockingQueue BlockingQueue}, however works with primitive ints rather than objects, so is unable to actually implement the BlockingQueue. This class takes advantage of the Unsafe.putOrderedObject, which allows us to create non-blocking code with guaranteed writes. These writes will not be re-orderd by instruction reordering. Under the covers it uses the faster store-store barrier, rather than the the slower store-load barrier, which is used when doing a volatile write. One of the trade off with this improved performance is we are limited to a single producer, single consumer.

Скачать low-latency-primitive-concurrent-queues

Как подключить последнюю версию

<!-- https://jarcasting.com/artifacts/uk.co.boundedbuffer/low-latency-primitive-concurrent-queues/ -->
<dependency>
    <groupId>uk.co.boundedbuffer</groupId>
    <artifactId>low-latency-primitive-concurrent-queues</artifactId>
    <version>1.0.0</version>
</dependency>
// https://jarcasting.com/artifacts/uk.co.boundedbuffer/low-latency-primitive-concurrent-queues/
implementation 'uk.co.boundedbuffer:low-latency-primitive-concurrent-queues:1.0.0'
// https://jarcasting.com/artifacts/uk.co.boundedbuffer/low-latency-primitive-concurrent-queues/
implementation ("uk.co.boundedbuffer:low-latency-primitive-concurrent-queues:1.0.0")
'uk.co.boundedbuffer:low-latency-primitive-concurrent-queues:jar:1.0.0'
<dependency org="uk.co.boundedbuffer" name="low-latency-primitive-concurrent-queues" rev="1.0.0">
  <artifact name="low-latency-primitive-concurrent-queues" type="jar" />
</dependency>
@Grapes(
@Grab(group='uk.co.boundedbuffer', module='low-latency-primitive-concurrent-queues', version='1.0.0')
)
libraryDependencies += "uk.co.boundedbuffer" % "low-latency-primitive-concurrent-queues" % "1.0.0"
[uk.co.boundedbuffer/low-latency-primitive-concurrent-queues "1.0.0"]

Зависимости

compile (2)

Идентификатор библиотеки Тип Версия
org.mockito : mockito-core jar 1.9.5
com.sun.japex : japex-maven-plugin jar 1.2.4

test (2)

Идентификатор библиотеки Тип Версия
junit : junit jar 4.8.2
com.sun.japex : japex jar 1.2.4

Модули Проекта

Данный проект не имеет модулей.

Версии библиотеки

Версия
1.0.0