3 个仓库
Synchronization primitives that guarantee every thread makes progress in a finite number of steps.
Distinct from Lock-Free Thread Communication: Distinct from Lock-Free Thread Communication: guarantees progress for every thread, not just the system as a whole.
Explore 3 awesome GitHub repositories matching development tools & productivity · Wait-Free Synchronization. Refine with filters or upvote what's useful.
Crossbeam is a concurrency toolkit for Rust providing low-level primitives for writing multi-threaded programs. It focuses on lock-free data structures and memory management primitives designed for shared-memory concurrent environments. The project includes a work-stealing scheduler that uses double-ended queues to balance workloads across multiple processor cores. This system enables the implementation of work-stealing deques to distribute tasks and prevent bottlenecks. The toolkit covers broader capabilities for parallel algorithm development, multi-threaded task scheduling, and general co
Provides wait-free synchronization primitives ensuring guaranteed progress for all participating threads.
Concurrent Ruby is a comprehensive concurrency toolkit for the Ruby language that provides thread-safe data structures, synchronization primitives, and asynchronous execution patterns. It implements core concurrency abstractions including an actor model framework where isolated actors communicate through asynchronous message passing, a future and promise system for composing non-blocking operations, and thread pool executors that manage reusable worker threads for concurrent task execution. The library distinguishes itself through a broad set of coordination mechanisms that go beyond basic th
Ships a query method to check if threads are waiting on a lock, useful for debugging and monitoring.
这是一个专为 C++ 设计的单生产者单消费者并发队列,用于线程间的无锁数据交换。它提供了一种无需互斥锁或锁即可传输数据的线程安全机制。 该队列实现为一个连续的循环缓冲区,支持动态容量增长,以防止队列达到上限时数据丢失。它利用原子同步和无等待索引管理来协调写入线程和读取线程之间的数据访问。 该库涵盖线程间通信和缓冲区管理,提供阻塞和非阻塞出队操作,以管理消费线程等待新数据的方式。
Manages head and tail indices using atomic integers to guarantee progress for both producer and consumer.