Skip to content

Latest commit

 

History

History
64 lines (56 loc) · 2.39 KB

README.md

File metadata and controls

64 lines (56 loc) · 2.39 KB

Concurrency on jvm

The project contains notes and details of concurrency techniques, patterns and models on JVM. All the examples are done using scala3, though it's just the matter of syntax and can be referred by java, scala, kotlin, etc. developers.

Note:

  • Make sure you have the jdk17 with loom installed from here https://jdk.java.net/loom/
  • It's assumed you have some basic understanding of Thread and java concurrency.
  • Most theory is ignored and here you will find simple notes and related examples from the resources referred (mentioned below).
  • The intention is to enhance your current understanding of currency on JVM or just a revision.
  • If any issue with the doc or examples please create an issue on github, and we will try to fix is ASAP.

Please refer to individual package readme for more details on how to follow the code, examples and notes.

As such there is no strict sequence, direct reference or connection within the packages here but if below sequence followed will make more sense ;)

  1. concurrency.basics
  2. concurrency.executor
  3. concurrency.futures
  4. concurrency.promises
  5. concurrency.datastructures
  6. concurrency.tooling
  7. concurrency.cats-effects
  8. concurrency.akka

Table of contents (WIP):

  1. Thread basics
    1. Thread Creation
    2. User vs Daemon Thread
    3. Synchronization
    4. States of a Thread
    5. Locks
    6. WIP...
  2. Atomic Variables
  3. Ecexutor & ExecutorService
    1. Introduction
    2. Creating Simple Executor
    3. Available Executor implementations
    4. ForkJoin framework
    5. Scala Global executor
  4. Future & Promises
    1. Promises in Scala
    2. Creating your own Future
    3. Creating a Cancellable Future
    4. WIP ...
  5. Concurrent Data Structures
  6. Concurrent design patterns
    1. WIP
  7. Project loom
  8. Tools & Profilers
  9. Cats Effects
    1. WIP

References:

  1. Java Concurrency in Practice
  2. Mastering Concurrency Programming with Java 8
  3. Learning Concurrent Programming in Scala
  4. The Art of Multiprocessor Programming
  5. Oracle JDK API doccumentation
  6. Type level cats effect docs/blogs
  7. WIP ...