27 Repos
Concepts and tools for managing multi-threaded execution and synchronization.
Explore 27 awesome GitHub repositories matching part of an awesome list · Concurrency & Threading. Refine with filters or upvote what's useful.
RxJava is a reactive stream processing framework and JVM reactive extensions library. It serves as an asynchronous dataflow orchestrator used to compose event-based programs by transforming, combining, and consuming real-time data flows on the Java Virtual Machine. The project distinguishes itself through integrated backpressure flow control, which manages the emission rate between producers and consumers to prevent memory exhaustion. It further provides mechanisms for concurrent thread management and parallel data processing to offload blocking operations and maintain application responsiven
Provides tools for managing multi-threaded execution and synchronization to offload blocking operations.
JavaFamily is a curated set of learning paths and reference guides for backend engineering, distributed systems, and virtual machine internals. It provides a structured curriculum covering the Java language, operating system concepts, and network protocols. The project features detailed study guides for the Java virtual machine architecture, including memory management and garbage collection. It also includes a comprehensive reference for distributed systems, covering microservices, remote procedure call frameworks, and scalable system design. The collection covers a broad range of technical
Provides conceptual guides and tools for managing multi-threaded execution and synchronization using latches and barriers.
p3c is a Java static analysis tool and code quality linter designed to enforce professional coding guidelines and quality standards. It utilizes a set of custom rules based on the PMD engine to scan source code for style violations, performance bottlenecks, and potential bugs. The project is distributed as an IDE linting plugin that provides real-time feedback and warnings during development. It also includes functionality for pre-commit code quality gates, allowing modified files to be scanned and blocked if they violate defined rules before being committed to version control. The analysis
Detects thread safety issues and improper synchronization patterns to prevent deadlocks and runtime crashes.
Hutool is a standard utility library for Java application development designed to simplify common programming tasks and reduce boilerplate code. It provides a comprehensive collection of reusable helper classes and static utilities to streamline development across the Java ecosystem. The project implements a wide array of specialized toolkits, including systems for cryptography and security, network communication via HTTP and JSON clients, and the processing of office documents and file system IO. It also features a concurrency and scheduling framework for managing asynchronous tasks and recu
Provides a coordination system using locks and thread pools to manage asynchronous execution and prevent conflicts.
Abseil is a common utility library for C++ that provides foundational building blocks for applications. It serves as a collection of optimized utility functions and data structures that augment the C++ standard library across different compiler versions. The library is distinguished by its high-performance containers, including SIMD-accelerated hash maps and sets for efficient key-value lookups. It also provides a comprehensive framework for computing absolute time points, durations, and timestamps across global time zones. The project covers a broad range of capability areas, including conc
Coordinates shared resource access using mutexes and locking primitives to prevent data races.
This is a mobile object database and NoSQL local data store that replaces relational tables with a schema-based model. It functions as a reactive data store, using live object observations and change notifications to trigger automatic user interface refreshes. The system provides built-in mobile cloud data synchronization to keep local datasets consistent with a remote server across multiple devices. It also includes security features for encrypted local storage, protecting sensitive on-disk data using at-rest encryption keys and fine-grained access control. Broad capabilities include object
Prevents concurrent memory access crashes by restricting database objects to the thread where they were created.
Infer is a static analysis toolset for Java, C, C++, and Objective-C designed to detect memory leaks, null dereferences, and resource bugs. It functions as a multi-language bug finder that identifies race conditions, deadlocks, and memory safety issues by translating source code into a common intermediate representation for analysis. The project distinguishes itself through an inter-procedural data flow analyzer that tracks movement between sources and sinks to detect tainted flows and generate data flow graphs. It also includes a framework for verifying temporal properties and reachability u
Performs static analysis of multi-threaded code to identify race conditions, deadlocks, and synchronization errors.
AndroidAnnotations is a suite of tools designed to automate the generation of repetitive boilerplate and setup code for mobile application development. It functions as a code generation tool that reduces manual effort by creating the plumbing required to initialize Android components and views. The project provides specialized frameworks for dependency injection, concurrency management, and view binding. It automates the assignment of system services, resources, and UI elements to fields and maps user interface events directly to methods to eliminate the need for anonymous listener classes.
Routes method execution between the UI thread and background threads to manage concurrency in Android applications.
This project is a curated collection of guidelines and technical resources designed to improve C++ code safety, maintainability, and performance. It provides a comprehensive set of coding standards and best practices for establishing consistent naming, formatting, and structural patterns across C++ codebases. The guide offers specific technical advice on performance optimization, including methods for minimizing object copying, optimizing memory allocation, and reducing compilation cycles. It also provides a directory of tooling recommendations for implementing static analysis, fuzz testing,
Describes strategies for managing concurrent execution to avoid race conditions and deadlocks.
libhv is a high-performance C/C++ network library and event-driven I/O framework used to build TCP, UDP, SSL, HTTP, WebSocket, and MQTT clients and servers. It provides a non-blocking event loop for managing network sockets, timers, and system signals across multiple threads. The project is distinguished by its integrated support for specialized network roles, including a full HTTP web server with RESTful routing and middleware, an MQTT messaging client for IoT communication, and the ability to implement SOCKS5 and HTTP proxies. It also features a reliable UDP implementation to ensure ordered
Allows configuration of processing threads and load balancing strategies for network connections.
This project is a C++ TCP server framework and educational socket programming guide. It provides a high-performance network library focused on event-driven architecture, implementing a reactor pattern to handle thousands of simultaneous client connections. The framework is distinguished by its multi-threaded event loop, which utilizes a main-sub reactor coordination model to distribute network events across a worker thread pool. It includes an abstraction layer for non-blocking socket I/O and event multiplexing via the epoll system call, decoupling network transport from application business
Employs scheduling strategies to distribute new network connections evenly across worker threads.
doctest ist ein Unit-Testing-Framework und eine Assertions-Bibliothek für C++, die als Single-Header-Bibliothek bereitgestellt wird. Es bietet einen Test-Runner mit einer Befehlszeilenschnittstelle, um Tests auszuführen, Testsuiten zu filtern und Ausführungsberichte zu generieren. Das Framework unterstützt In-Source-Unit-Testing und ermöglicht das vollständige Entfernen der Testlogik aus kompilierten Binärdateien mittels Präprozessor-Stripping, um Performance-Overhead in Produktionsumgebungen zu eliminieren. Es ermöglicht zudem das Teilen von Test-Registries über Binärdateien hinweg, sodass eine ausführbare Datei den Test-Runner einer anderen nutzen kann. Zu den Funktionen gehören parametrisiertes Testen, thread-sichere Assertions-Verifizierung für die Validierung nebenläufiger Software und automatisierte Testberichte für Regressionsanalysen. Es nutzt eine automatische Testregistrierung, um Testfälle zu sammeln, ohne dass manuelle Listen von Funktionen zur Ausführung erforderlich sind.
Implements thread-safe assertion verification to validate shared data consistency in concurrent software.
doctest is a lightweight C++ unit testing framework and assertion library. It provides a single-header implementation that eliminates complex build dependencies, allowing developers to write and execute test cases directly within their source code. The framework is distinguished by its focus on compile-time performance and binary overhead. It uses conditional compilation guards to strip all testing logic and metadata from production binaries. Additionally, it features hierarchical subcases that re-execute parent setup code to isolate different execution paths within a single test case. Its c
Provides a thread-safe assertion library for verifying runtime logic outside of standard test cases.
CppGuide is a curated collection of educational resources and practical guides focused on C++ server development, Linux kernel internals, concurrent programming, network protocols, and security exploitation. It provides structured learning paths for backend developers, covering everything from interview preparation to building high-performance network servers and understanding operating system fundamentals. The guide distinguishes itself by offering in-depth, hands-on tutorials that walk through real-world implementations, including building a Redis-like server from scratch, designing custom
Teaches thread creation, synchronization, and management across Windows and Linux.
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
Provides an exchanger that pairs two threads to swap elements at a synchronization point.
This is an open-source, crowd-sourced wiki textbook that teaches Linux system programming in C. It covers the core operating system concepts of process management through the fork-exec-wait model, dynamic memory allocation using implicit free list heap allocators, inode-based file systems, inter-process communication via pipes and shared memory, POSIX threads with synchronization primitives, signal-based asynchronous notification, virtual memory with page table translation, and runtime diagnostics using Valgrind and GDB. The textbook distinguishes itself by providing practical, implementation
Teaches that threads share global memory, a fundamental concept for understanding race conditions.
seL4 is a formally verified microkernel whose C implementation is backed by machine-checked mathematical proofs of correctness, confidentiality, integrity, and availability. It enforces strict isolation between processes through hardware-enforced address space separation and a capability-based access control system, where each process holds explicit rights only to the resources it has been granted. The kernel exposes hardware resources through a minimal API of system calls that manage threads, address spaces, and inter-process communication, with synchronous IPC supporting sender-identifying b
Provides kernel API to set initial register values for a thread's function call including arguments.
tbox is a multi-platform C standard library and toolkit designed for portable software development. It provides a core foundation for low-level system programming through a collection of system primitives, data structures, and memory management tools. The project includes a coroutine framework for cooperative multitasking and asynchronous logic, a data structure library featuring generic containers with a consistent iterator interface, and a memory management toolkit for pool allocation and debugging of heap overflows and leaks. It also provides a network and serialization toolset for handlin
Provides unified abstractions for low-level system primitives such as timers, mutexes, and thread pools.
Tbox ist eine umfassende Sammlung von Low-Level-Utility-Bibliotheken und Toolkits für die portable C-Entwicklung. Sie bietet eine plattformübergreifende C-Utility-Bibliothek, die als leichtgewichtiger Ersatz für Standardbibliotheken dient und optimierte Speicherverwaltung sowie Systemabstraktionen bietet, um die Hardware-Kompatibilität über verschiedene Betriebssysteme hinweg sicherzustellen. Das Projekt zeichnet sich durch ein spezialisiertes Framework standardisierter Datencontainer aus, darunter Hash-Tabellen, Vektoren und verkettete Listen mit integrierter Suche und Sortierung. Es bietet zudem ein dediziertes Toolkit für Netzwerk und Serialisierung, das HTTP-Anfragen, SSL-Verschlüsselung und Datenkonvertierung zwischen JSON-, XML- und Binärformaten verwaltet. Die Kompetenzoberfläche erstreckt sich auf die gleichzeitige Aufgabenausführung mittels Coroutines und Thread-Pools, vereinheitlichte Systemaufruf-Abstraktionen und 2D-Grafik-Rendering. Zusätzliche Funktionalitäten umfassen kryptografische Hash-Generierung, Ausführung regulärer Ausdrücke, Festkomma-Arithmetik und Speicherpool-Verwaltung. Das Toolkit enthält zudem spezialisierte Tools für das Objective-C-Methoden-Tracing auf iOS und macOS sowie eine virtuelle Maschine, die in der Lage ist, x86-Skriptanweisungen zu verarbeiten.
Handles system-level tasks using cross-platform timers, atomic operations, mutexes, and thread pools.
This project is a comprehensive Java programming knowledge base and technical reference repository. It provides a curated collection of distilled answers, API documentation, and troubleshooting guides designed to help developers resolve common coding challenges and language pitfalls. The repository distinguishes itself through a structured architectural approach to knowledge, utilizing comparison-centric analysis to highlight trade-offs between different library implementations and language features. It aggregates high-impact community discussions into a standardized format, organizing techni
Covers essential concepts and tools for managing multi-threaded execution and synchronization in Java.