Concurrent Programming in Java

Rice University
via Coursera
Save (0)
ClosePlease login

No account yet? Register

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

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

Instructor(s)

Vivek Sarkar
Rice University
via Coursera
Free (audit)
English
Paid Certificate Available
Approx. 19 hours to complete
Self paced
Intermediate Level
Subtitles: Subtitles: Arabic, French, Portuguese (European), Italian, Vietnamese, German, Russian, English, Spanish