Java Concurrency

Open-source Java projects categorized as Concurrency

Top 16 Java Concurrency Projects

  • Disruptor

    High Performance Inter-Thread Messaging Library

  • Project mention: Gnet is the fastest networking framework in Go | news.ycombinator.com | 2024-03-14

    https://lmax-exchange.github.io/disruptor/#_what_is_the_disr.... Unfortunately IIUC writing this in Go still prevents the spin-locked acceptor thread from achieving the kind of performance you could get in a non-GC language, unless you chose to disable GC, so I'd guess Envoy is still faster.

    https://gnet.host/docs/quickstart/ it's nice that you can use this simply though. Envoy is kind of tricky to setup with custom filters, so most of the time it's just a standalone binary.

    [0] https://blog.envoyproxy.io/envoy-threading-model-a8d44b92231...

    [1] https://lmax-exchange.github.io/disruptor/#_what_is_the_disr...

  • Vert.x

    Vert.x is a tool-kit for building reactive applications on the JVM

  • Project mention: Spark – A web micro framework for Java and Kotlin | news.ycombinator.com | 2024-02-10

    https://vertx.io/

    It's actively maintained with full time developers, performant, supports Kotlin out of the box, and has more features?

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • Android-RxJava

    Learning RxJava for Android by example

  • Quasar

    Fibers, Channels and Actors for the JVM (by puniverse)

  • Project mention: Java 21 makes me like Java again | news.ycombinator.com | 2023-09-16

    Java 21 doesn't retrofit green threads though. Quasar [0] is a library that implemented fibers for Java and the main developer pron has joined the OpenJDK development team. All that was necessary for first party support is to make the JDK libraries yield when blocking.

    Adopting async isn't impossible at all, there is very little demand for it.

    [0] https://docs.paralleluniverse.co/quasar/

  • JCTools

  • ea-async

    EA Async implements async-await methods in the JVM.

  • Project mention: Fluent: Static Extension Methods for Java | news.ycombinator.com | 2023-07-02

    I feel like this misses the reason I like extension methods: discoverability.

    With an extension method, I can do `object.` and my IDE will tell me what can be called on object. With a static helper method, it isn't as easy to know what is available. I need to know which helpers actually exist.

    Since this doesn't have IDE support, it doesn't help discoverability. I'm not going to get nice autocomplete that shows me what is available. In fact, my IDE is going to highlight it as a bug. If I have a spelling mistake, I won't be able to easily pick it up - I'll assume it's just the normal complaint for all of these fluent extension methods.

    That makes this simply syntactic sugar rather than something that actually helps me discover things more easily. It then hurts readability and navigation since I can't easily click through to get the definition of the method.

    On a more general note about Java, things like this are one of the reasons I don't love the Java ecosystem. People try to change the behavior of Java in really hacky ways that don't work well. I understand that it's an attempt to overcome shortcomings in the language, but when one looks other languages it becomes clear that Java could have just evolved the language to be better. Java has lots of good things and I'm not looking to argue that. However, when I look at things like this, it makes me think that Java needs to really address the core language.

    Instead, we get lots of tools like this which might be nice, but make it really hard to understand what's going on. Electronic Arts created an async/await library that'll do crazy stuff to let you do async/await style programming (https://github.com/electronicarts/ea-async). Yes, Java is doing good things with structured concurrency and Project Loom, but the point is how people keep trying to work around the language. There are so many POJO generators it isn't funny: AutoValue, Immutables, JodaBeans, Lombok, and more I'm probably forgetting. Java records don't fulfill everything (and they're at least a decade late). Java doesn't support expression trees for lambdas so libraries sometimes do crazy hacky things to make that exist.

    Java is a great piece of technology, but it feels like people are often trying to overcome issues with the language through really hacky means in a way that I don't see in other languages. Java is getting better about modernizing the language, but it still feels like people are running against the language more than in other ecosystems.

  • react-native-threads

    Create new JS processes for CPU intensive work

  • SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
  • ConcurrencyFreaks

  • java-concurrency-examples

    Java Concurrency/Multithreading Tutorial with Examples for Dummies

  • lingua-franca

    Intuitive concurrent programming in any language

  • conditional

    A super lightweight library that helps you to compose multiple conditional expressions and make them asynchronous easily.

  • Composer

    Library for composability of interdependent non-blocking I/O tasks (by krupalshah)

  • money-transfer-rest-api

    Simple implementation of RESTful API for money transfers between accounts

  • time-series-concurrency-example

    Time Series Data and CompletableFuture example in Java

  • ExcelPasswordCracker

    A simple brute-force attack password cracker for Excel files with multi-threaded implementation.

  • Concurrent-Checkers-Game

    Concurrent/simultaneous checkers game for up to 8 players. Built this in correspondence to https://lichess.org/simul but to play Checkers as there is no such game that exists on the WWW.

  • SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
NOTE: The open source projects on this list are ordered by number of github stars. The number of mentions indicates repo mentiontions in the last 12 Months or since we started tracking (Dec 2020).

Java Concurrency related posts

  • Too Dangerous for C++

    2 projects | news.ycombinator.com | 9 Feb 2024
  • JEP Draft: Deprecate Memory-Access Methods in Sun.misc.Unsafe for Removal

    3 projects | news.ycombinator.com | 16 Jan 2024
  • Modern Async Primitives on iOS, Android, and the Web

    4 projects | dev.to | 6 Dec 2023
  • LMAX Disruptor – High Performance Inter-Thread Messaging Library

    1 project | /r/hackernews | 20 Nov 2023
  • Disruptor 4.0.0 Released

    1 project | news.ycombinator.com | 29 Sep 2023
  • Picking up Go as a Java dev—what could possibly go wrong?

    3 projects | /r/golang | 12 Dec 2022
  • if you had to restart at 0 knowledge what would you do?

    5 projects | /r/PinoyProgrammer | 11 Oct 2022
  • A note from our sponsor - InfluxDB
    www.influxdata.com | 7 May 2024
    Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality. Learn more →

Index

What are some of the best open-source Concurrency projects in Java? This list will help you:

Project Stars
1 Disruptor 17,029
2 Vert.x 14,080
3 Android-RxJava 7,551
4 Quasar 4,548
5 JCTools 3,476
6 ea-async 1,362
7 react-native-threads 736
8 ConcurrencyFreaks 402
9 java-concurrency-examples 265
10 lingua-franca 209
11 conditional 57
12 Composer 19
13 money-transfer-rest-api 18
14 time-series-concurrency-example 6
15 ExcelPasswordCracker 5
16 Concurrent-Checkers-Game 4

Sponsored
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com