All Projects → asgeirn → circular-buffer

asgeirn / circular-buffer

Licence: other
A Lock Free Concurrent Circular Buffer

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to circular-buffer

SOMns
SOMns: A Newspeak for Concurrency Research
Stars: ✭ 62 (+342.86%)
Mutual labels:  concurrency
ratelimiter
A concurrent rate limiter library for Golang based on Sliding-Window rate limiter algorithm.
Stars: ✭ 218 (+1457.14%)
Mutual labels:  concurrency
Sqlable
Swift library for making storing data in a SQLite database simple and magic-free
Stars: ✭ 83 (+492.86%)
Mutual labels:  concurrency
go-workshops
Go language basic workshops for devz
Stars: ✭ 68 (+385.71%)
Mutual labels:  concurrency
ComposableAsync
Create, compose and inject asynchronous behaviors in .Net Framework and .Net Core.
Stars: ✭ 28 (+100%)
Mutual labels:  concurrency
gcl
A graph concurrent library for C++
Stars: ✭ 21 (+50%)
Mutual labels:  concurrency
futureproof
Bulletproof concurrent.futures
Stars: ✭ 36 (+157.14%)
Mutual labels:  concurrency
TikTok
Download public videos on TikTok using Python with Selenium
Stars: ✭ 37 (+164.29%)
Mutual labels:  concurrency
pinboard
A threadsafe way to publish data, just stick it on the pinboard
Stars: ✭ 24 (+71.43%)
Mutual labels:  concurrency
grimoire
A fast, concurrent based scripting language for D.
Stars: ✭ 21 (+50%)
Mutual labels:  concurrency
rust-concurrency-patterns
Examples of concurrency patterns implemented in Rust
Stars: ✭ 29 (+107.14%)
Mutual labels:  concurrency
idle
Idle is an asynchronous and hot-reloadable C++ dynamic component framework
Stars: ✭ 169 (+1107.14%)
Mutual labels:  concurrency
portal
A lightweight framework for golang object (struct) serialization (mapping). Inspired heavily by marshmallow (a Python library).
Stars: ✭ 24 (+71.43%)
Mutual labels:  concurrency
thread-pool
BS::thread_pool: a fast, lightweight, and easy-to-use C++17 thread pool library
Stars: ✭ 1,043 (+7350%)
Mutual labels:  concurrency
beems
a bee-queue based minimalist toolkit for building fast, decentralized, scalable and fault tolerant microservices
Stars: ✭ 33 (+135.71%)
Mutual labels:  concurrency
High-concurrency
High concurrency demo
Stars: ✭ 59 (+321.43%)
Mutual labels:  concurrency
cl-gserver
Actor framework featuring actors and agents for easy access to state and asynchronous operations.
Stars: ✭ 121 (+764.29%)
Mutual labels:  concurrency
Polyel-Framework
⚡️ Voltis Core: A PHP framework based on Swoole from the ground up
Stars: ✭ 22 (+57.14%)
Mutual labels:  concurrency
react-webworker-demo
No description or website provided.
Stars: ✭ 14 (+0%)
Mutual labels:  concurrency
Dots
Lightweight Concurrent Networking Framework
Stars: ✭ 35 (+150%)
Mutual labels:  concurrency

Lock Free Concurrent Circular Buffer

Build Status

It supports multiple independent readers, so many consumers can get updates to this circular buffer.

It is lock free, so neither writers nor readers will block. If you try to take() on a buffer with no updates a null is returned, and if you drain() a buffer with no updates you get an empty list.

I recommend you give it a spin if you want a (simple) circular buffer. It does detect buffer wraparounds, but will in this case reset the reader to the end of the buffer, losing any intermediate updates. Tune your buffer size accordingly.

Take a look at the unit tests to get an idea on how to use this buffer.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].