Chevron Left
Back to Concurrent Programming in Java

Concurrent Programming in Java, Rice University

4.5
285 ratings
40 reviews

About this Course

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)....

Top reviews

By PS

Sep 02, 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.

By SM

Nov 12, 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

Filter by:

39 Reviews

By Sudharaka Palamakumbura

Nov 19, 2018

Great course to understand the fundamentals of concurrent programming!

By Jad Chahine

Oct 09, 2018

Great course, it focuses on the basics and let you master them

By Мухин Сергей Алексеевич

Sep 25, 2018

Хорошо

By Benjamin Grant Jones

Aug 10, 2018

Much stronger in mini-projects than the first course.

By Travis Wilson

Jul 30, 2018

A lot of my time has been wasted due to a very poor explanation of actors. All it takes is "Actors have their own threads and that is how they are concurrent.

By Rahul Kumar Rai

Jul 22, 2018

Hard course, we need more assignments, small chunks. Making assignments for courses like these is not trivial as well.

By Josefine Lindbo

Jul 09, 2018

Very good, but I'd like more practical examples and walk-troughs. If you don't get it the in the only example or the demo, then you're left on your own to Google for more examples and a deeper understanding.

By Antonio José Molina Gutiérrez

May 13, 2018

Only thing I missed are more optional exercises, otherwise a great course.

By Samuele Manfrin

May 06, 2018

Good course, with relevant basics of concurrency, even if I expected deeper and detailed contents.

By Hieu Doan

Apr 16, 2018

Like previous course, The content is heavy in theory but not much in practical.