Libmill is a library that introduces Go-style concurrency to C. It can execute up to 20 million coroutines and 50 million context switches per second. It also contains simple networking and file access library that allows users to quickly bootstrap application development.
https://github.com/sustrik/libmillTags | concurrency threads sockets multi-threading networking |
Implementation | C |
License | MIT |
Platform | Windows Linux |
Libdill is a C library that makes writing structured concurrent programs easy. There is no interaction between threads. Each thread is treated as a separate process. Channels are always unbuffered. Coroutines can be canceled. Generally speaking, though, libdill's concurrency primitives are only a bit slower than basic C flow control statements. A context switch has been seen to execute in as little as 6 ns, with coroutine creation taking 26 ns. Passing a message through a channel takes about 40 ns.
concurrency threads multi-threading socketsA thread pool is a technique that allows developers to exploit the concurrency of modern processors in an easy and efficient manner. It's easy because you send "work" to the pool and somehow this work gets done without blocking the main thread. It's efficient because threads are not initialized each time we want work to be done. Threads are initialized once and remain inactive until some work has to be done. This way we minimize the overhead. There are many many Thread pool implementations in C++, many of them are probably better (safer, faster...) than mine. However, I belive my implementation is very straightforward and easy to understand.
threads thread-pool futures multi-threading concurrencyYew is a modern Rust framework inspired by Elm and ReactJS for creating multi-threaded frontend apps with WebAssembly. NEW! The framework supports multi-threading & concurrency out of the box. It uses Web Workers API to spawn actors (agents) in separate threads and uses a local scheduler attached to a thread for concurrent tasks.
web gui jsx elm web-framework wasm asmjs emscripten concurrency multithreading webworkersOur apps constantly do work. The faster you react to user input and produce an output, the more likely is that the user will continue to use your application. As our applications grow in complexity, the more and more work needs to be done. You need to start thinking about how to categorize and optimize work, how to make that work more efficient, more optimized and finally, faster. In most cases that doesn’t end very well because you need to know a lot about concurrency, multithreading etc. - it’s a very complex field. You need to know all API specifics before you are able to write something. Overdrive was created as a result of that struggle. It is a framework that exposes several simple concepts which are made on top of complex system frameworks that enable multithreading, concurrency and most importantly, more speed.
concurrency multi-threading thread-safetyOur apps constantly do work. The faster you react to user input and produce an output, the more likely is that the user will continue to use your application. As our applications grow in complexity, the more and more work needs to be done. You need to start thinking about how to categorize and optimize work, how to make that work more efficient, more optimized and finally, faster. In most cases that doesn’t end very well because you need to know a lot about concurrency, multithreading etc. - it’s a very complex field. You need to know all API specifics before you are able to write something. Overdrive was created as a result of that struggle. It is a framework that exposes several simple concepts which are made on top of complex system frameworks that enable multithreading, concurrency and most importantly, more speed.
concurrency multi-threading thread-safetyThis project provides multi-threading that is compatible with PHP based on Posix Threads. It can execute any and all predefined and user declared methods and functions asynchronously. It has built-in support of Synchronization, Synchronized Methods.
thread threading multi-threading php-threading posix-thread worker-threadconcurrencpp is a tasking library for C++ allowing developers to write highly concurrent applications easily and safely by using tasks, executors and coroutines. By using concurrencpp applications can break down big procedures that need to be processed asynchronously into smaller tasks that run concurrently and work in a co-operative manner to achieve the wanted result. concurrencpp also allows applications to write parallel algorithms easily by using parallel coroutines. concurrencpp is a task-centric library. A task is an asynchronous operation. Tasks offer a higher level of abstraction for concurrent code than traditional thread-centric approaches. Tasks can be chained together, meaning that tasks pass their asynchronous result from one to another, where the result of one task is used as if it were a parameter or an intermediate value of another ongoing task. Tasks allow applications to utilize available hardware resources better and scale much more than using raw threads, since tasks can be suspended, waiting for another task to produce a result, without blocking underlying OS-threads. Tasks bring much more productivity to developers by allowing them to focus more on business-logic and less on low-level concepts like thread management and inter-thread synchronization.
cpp scheduler coroutines concurrency tasks multithreading concurrent-programming asynchronous-programming threading await async-await task-scheduler thread-safety timers executor-service coroutine threadpool cpp20 executors🎏 simple show cases of java concurrency problems
concurrency demo showcase concurrent-programming concurrency-problem concurrency-issue concurrency-gotchas thread-safety multi-threading parallelismmessage-io is a fast and easy-to-use event-driven network library. The library handles the OS socket internally and offers a simple event message API to the user. It also allows you to make an adapter for your own transport protocol following some rules, delegating the tedious asynchrony and thread management to the library. Managing sockets is hard because you need to fight with threads, concurrency, full duplex, encoding, IO errors that come from the OS (which are really difficult to understand in some situations), etc. If you make use of non-blocking sockets, it adds a new layer of complexity: synchronize the events that come asynchronously from the Operating System.
events tcp sockets asynchronous network websocket udp actor-model tcp-server message-queue transport event-driven udp-server multicast network-programming non-blocking event-manager event-driven-architecture actor-system message-drivenThis is a library for enabling task-based multi-threading. It allows execution of task graphs with arbitrary dependencies. Dependencies are represented as atomic counters. Under the covers, the task graph is executed using fibers, which in turn, are run on a pool of worker threads (one thread per CPU core). This allows the scheduler to wait on dependencies without task chaining or context switches.
cpp multithreading fibers task-scheduler coroutinesa nodejs module for local and remote Inter Process Communication with full support for Linux, Mac and Windows. It also supports all forms of socket communication from low level unix and windows sockets to UDP and secure TLS and TCP sockets. This work is licenced via the DBAD Public Licence.
ipc neural-networking machine-learning inter process communication unix win socket tcp udp domain sockets threaded multi shared memoryIt's a bit mind bending in that it's like using a higher-level list monad, but it's very, very cool. For beginning Haskellers, what would be really useful is a visualisation of what happens when you do various distributed/parallel stuff. It's almost shocking how effortlessly you can run computations across threads/nodes. The cool part is the composability in the distributed setting. You can make higher-order monadic functions that allow you to compose & reuse a long chain of distributed transactions via wormhole and teleport. Another benefit is that the transaction becomes first class and you can see exactly what's going on in one place instead of distributing the logic across actors making the code equivalent to event callbacks, as you've stated.
distributed-computing web events threading composition backtracking composability haskell transaction concurrencyThreading.Net, is a small windows form application that highlights the benefits of multithreaded programming by comparing in parallel, using progessbars, the same process running in single thread and in multi thread mode.
threading backgoundworker interlocked manualresetevent progressbar thread thread-safelibuv is a multi-platform support library with a focus on asynchronous I/O. It was primarily developed for use by Node.js, but it’s also used by Luvit, Julia, pyuv, and others. Its feature includes event loop backed by epoll, kqueue, IOCP, event ports. Asynchronous TCP and UDP sockets, Asynchronous DNS resolution, Thread pool, Signal handling and lot more.
networking-library socket asynchronous networking communication library messagingThreading, concurrency, etc
asynchronous concurrency concurrent thread thread-pool threading threadpoolPTypes is a simple alternative to the STL that includes multithreading and networking. It defines dynamic strings, character sets, lists and other basic data types along with threads, synchronization primitives, named pipes and IP sockets.
The MTF.NET Runtime is a multi-threaded scheduler designed to execute high-performance .NET applications efficiently across multiple CPU cores.
concurrency threadingJava Concurrency Tools for the JVM. This project aims to offer some concurrent data structures currently missing from the JDK.
concurrency data-structures queues lock-free wait-free awesome collections java-collection data-structureJavascript thread library. Uses web workers when run in browsers and child processes when run by node.js. Also supports browsers which do not support web workers.You don't have to write the thread's code inline. The file is expected to be a commonjs module (so something that uses module.exports = ...), for node and browser.
nodejs thread-pool web-worker isomorphic-javascript threads cluster child_process threadpool spawn fork parallelOpenTop is a cross-platform, high-performance C++ class library providing features similar to (and modelled on) core Java facilities such as resource management, networking, multi-threading, Unicode and XML parsing.
We have large collection of open source products. Follow the tags from
Tag Cloud >>
Open source products are scattered around the web. Please provide information
about the open source projects you own / you use.
Add Projects.