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).
About this Course
Learner Career Outcomes
Learner Career Outcomes
Rice University is consistently ranked among the top 20 universities in the U.S. and the top 100 in the world. Rice has highly respected schools of Architecture, Business, Continuing Studies, Engineering, Humanities, Music, Natural Sciences and Social Sciences and is home to the Baker Institute for Public Policy.
- 5 stars
- 4 stars
- 3 stars
- 2 stars
- 1 star
TOP REVIEWS FROM CONCURRENT PROGRAMMING IN JAVA
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.
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.
Amazing course. Especially for those who want to really understand the foundations behind multithreading and concurrency in Java. As always, Professor Sarkar is brilliant!
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
About the Parallel, Concurrent, and Distributed Programming in Java Specialization
Parallel, concurrent, and distributed programming underlies software in multiple domains, ranging from biomedical research to financial services. This specialization is intended for anyone with a basic knowledge of sequential programming in Java, who is motivated to learn how to write parallel, concurrent and distributed programs. Through a collection of three courses (which may be taken in any order or separately), you will learn foundational topics in Parallelism, Concurrency, and Distribution. These courses will prepare you for multithreaded and distributed programming for a wide range of computer platforms, from mobile devices to cloud computing servers.
Frequently Asked Questions
When will I have access to the lectures and assignments?
What will I get if I subscribe to this Specialization?
Is financial aid available?
Will I earn university credit for completing the Course?
More questions? Visit the Learner Help Center.