Back to Concurrent Programming in Java
Rice University

Concurrent Programming in Java

This course teaches learners (industry professionals and students) the fundamental concepts of concurrent programming in the context of Java 8. Concurrent programming enables developers to efficiently and correctly mediate the use of shared resources in parallel programs. By the end of this course, you will learn how to use basic concurrency constructs in Java such as threads, locks, critical sections, atomic variables, isolation, actors, optimistic concurrency and concurrent collections, as well as their theoretical foundations (e.g., progress guarantees, deadlock, livelock, starvation, linearizability). Why take this course? • It is important for you to be aware of the theoretical foundations of concurrency to avoid common but subtle programming errors. • Java 8 has modernized many of the concurrency constructs since the early days of threads and locks. • During the course, you will have online access to the instructor and mentors to get individualized answers to your questions posted on the forums. • Each of the four modules in the course includes an assigned mini-project that will provide you with the necessary hands-on experience to use the concepts learned in the course on your own, after the course ends. The desired learning outcomes of this course are as follows: • Concurrency theory: progress guarantees, deadlock, livelock, starvation, linearizability • Use of threads and structured/unstructured locks in Java • Atomic variables and isolation • Optimistic concurrency and concurrent collections in Java (e.g., concurrent queues, concurrent hashmaps) • Actor model in Java Mastery of these concepts will enable you to immediately apply them in the context of concurrent Java programs, and will also help you master other concurrent programming system that you may encounter in the future (e.g., POSIX threads, .NET threads).

Status: Java
Status: Java Programming
IntermediateCourse19 hours

Featured reviews

GA

5.0Reviewed Sep 19, 2020

Very good explanation of the concepts of locks, and how important data-structures example HashMap are optimized to improve performance

FH

4.0Reviewed Nov 26, 2020

It could have been better. Course content is very basic and just scratches the surface of concurrent programming. However, fully recommend it for beginners.

SS

4.0Reviewed Apr 30, 2020

It was a really interesting course where the things were presented in a very simplified manner in which I could learn the topics in a short span of time.

PS

5.0Reviewed Sep 1, 2017

Great course. With minimal effort you can learn about important concepts and see immediate results regarding the actual speedup you can achieve using concurrent programming.

CC

4.0Reviewed Apr 17, 2022

As a course for introduction it is good. But it mentioned very little of how we implement all these concept like isolation and actors. I wanna see more of it.

JB

5.0Reviewed Sep 2, 2017

Short and easy to understand multi-threading with locks, object-based isolation, Actors, Atomic values and optimistic concurrency.

JX

4.0Reviewed Mar 16, 2020

The course overall is good, but the autograder of assignment can be improved so that the students will not get frustrated to their answer for such long time

AA

5.0Reviewed Feb 1, 2020

Awesome course, it nudges students in right directions, provides them with solid fundamentals and encourages them to deep dive more into topics. Thanks a lot!

SM

5.0Reviewed Nov 11, 2017

This was a good course and covered all the topics relevant to the course. I liked the Optimistic Concurrency in week 4 - that was an area I was not exposed to before

FC

5.0Reviewed Feb 8, 2020

Excellent way to refresh what I learned some years ago in Operator System. Also I won a small hands-on experience using locks, isolation and high level concurrency in Java.

SG

4.0Reviewed Jan 26, 2020

The course was niece. It could have made of use of a programming language from scrath rather than depending on the pre-built library.

LF

4.0Reviewed Jan 27, 2019

Lo consiglio a tutti, Vorrei soltanto che gli argomenti fossero affrontati più approfonditamente dal punto di vista teorico

All reviews

Showing: 20 of 111

Ernest Staszuk
1.0
Reviewed Oct 29, 2017
3.0
Reviewed Jan 20, 2019
Wen Lin
1.0
Reviewed Nov 1, 2017
Chintan Gandhi
3.0
Reviewed Jan 12, 2018
Prathamesh Beri
5.0
Reviewed Nov 24, 2020
Saifuddin Merchant
5.0
Reviewed Nov 11, 2017
Hieu Doan
3.0
Reviewed Apr 16, 2018
Jakob Ullmann
1.0
Reviewed Mar 15, 2021
Naveen Lalwani
5.0
Reviewed Jul 15, 2019
Dazhi Wang
5.0
Reviewed Aug 9, 2020
Sankalp Arora
5.0
Reviewed Jun 2, 2020
Muhammad Yasir
5.0
Reviewed Sep 11, 2021
Kumaravel Kandasami
5.0
Reviewed Oct 6, 2017
Carlos D. Morales
5.0
Reviewed Feb 19, 2018
Petros Siatos
5.0
Reviewed Sep 2, 2017
Fernando Leonel Conde
5.0
Reviewed Feb 9, 2020
A M
5.0
Reviewed May 30, 2020
Anurag Ambuj
5.0
Reviewed Feb 2, 2020
Hung Wai Kay
5.0
Reviewed Dec 8, 2024
Wei Zhao
5.0
Reviewed Jan 21, 2020