An open API service indexing awesome lists of open source software.

https://github.com/dipjul/java-concurrency-course


https://github.com/dipjul/java-concurrency-course

Last synced: 11 months ago
JSON representation

Awesome Lists containing this project

README

          

# Java Concurrency Course
Certainly! Below are resources for each class in the suggested Java Concurrency course. Note that these resources include online tutorials, articles, and books to cover theoretical aspects and hands-on labs.

### **Weeks 1-2: Introduction to Concurrency and Threads**

* **Theory Class:**

1. [Concurrency Basics - Oracle Java Tutorials](https://docs.oracle.com/javase/tutorial/essential/concurrency/)
2. [Synchronization - Oracle Java Tutorials](https://docs.oracle.com/javase/tutorial/essential/concurrency/sync.html)
* **Lab Session:**

1. [Baeldung - Creating and Starting Threads in Java](https://www.baeldung.com/java-start-thread)
2. [Baeldung - Synchronization in Java](https://www.baeldung.com/java-synchronized)

### **Weeks 3-4: Advanced Thread Management and Executor Framework**

* **Theory Class:**

1. [Java Thread States and Life Cycle - Baeldung](https://www.baeldung.com/java-thread-state)
2. [Java Daemon Thread - Baeldung](https://www.baeldung.com/java-daemon-thread)
* **Lab Session:**

1. [Baeldung - Thread Control in Java](https://www.baeldung.com/java-thread-control)
2. [Java Executor Service Tutorial - Baeldung](https://www.baeldung.com/java-executor-service-tutorial)

### **Weeks 5-6: Locks and Conditions**

* **Theory Class:**

1. [Guide to Java Locks - Baeldung](https://www.baeldung.com/java-locks)
2. [Java Read Write Lock - Baeldung](https://www.baeldung.com/java-read-write-lock)
* **Lab Session:**

1. [Baeldung - ReentrantLock in Java](https://www.baeldung.com/java-reentrantlock)
2. [Baeldung - Using Conditions in Java](https://www.baeldung.com/java-condition)

### **Weeks 7-8: Atomic Variables and Concurrent Collections**

* **Theory Class:**

1. [Atomic Variables in Java - Baeldung](https://www.baeldung.com/java-atomic-variables)
2. [Guide to Java Concurrent Collections - Baeldung](https://www.baeldung.com/java-concurrent-collections)
* **Lab Session:**

1. [Java Atomic Types and Variables - Baeldung](https://www.baeldung.com/java-atomic-types-variables)
2. [Java ConcurrentHashMap - Baeldung](https://www.baeldung.com/java-concurrent-hashmap)

### **Weeks 9-10: Fork/Join Framework and Asynchronous Programming**

* **Theory Class:**

1. [Fork/Join Framework in Java - Baeldung](https://www.baeldung.com/java-fork-join)
2. [Guide to CompletableFuture in Java - Baeldung](https://www.baeldung.com/java-completablefuture)
* **Lab Session:**

1. [Baeldung - Implementing ForkJoinPool](https://www.baeldung.com/java-fork-join)
2. [Baeldung - CompletableFuture in Java](https://www.baeldung.com/java-completablefuture)

### **Weeks 11-12: Concurrency Design Patterns and Best Practices**

* **Theory Class:**

1. [Java Concurrency in Practice by Brian Goetz et al.](https://jcip.net/)
2. [Concurrency Design Patterns - Baeldung](https://www.baeldung.com/java-concurrency-design-patterns)
* **Lab Session:**

1. [Baeldung - Implementing Producer-Consumer Pattern in Java](https://www.baeldung.com/java-producer-consumer)
2. [Java Memory Model and Java - DZone](https://dzone.com/articles/java-memory-model-and-java)

### **Weeks 13-14: Real-World Projects and Final Project Presentation**

* **Theory Class:**

1. [Baeldung - Real-world Projects with Java Concurrency](https://www.baeldung.com/java-concurrency-real-world)
* **Lab Session:**

1. Encourage participants to use documentation and additional online resources as needed for their projects.

**Additional Resources for All Weeks:**
---------------------------------------

* [Java Concurrency in Practice by Brian Goetz et al.](https://jcip.net/)
* [Baeldung's Concurrency Tutorials](https://www.baeldung.com/java-concurrency)
* [Oracle Java Tutorials - Concurrency](https://docs.oracle.com/javase/tutorial/essential/concurrency/)