Concurrent Programming in Java
Provided by:

Provided by:

Course Details
Cost
FREE,
Add a Verified Certificate for $79
Upcoming Schedule
- Upcoming
Course Provider

Coursera online courses
Coursera's online classes are designed to help students achieve mastery over
course material. Some of the best professors in the world - like neurobiology
professor and author Peggy Mason from the University of Chicago, and computer
science professor and Folding@Home director Vijay Pande - will supplement your
knowledge through video lectures. They will also provide challenging
assessments, interactive exercises during each lesson, and the opportunity to
use a mobile app to keep up with yo...
Coursera's online classes are designed to help students achieve mastery over
course material. Some of the best professors in the world - like neurobiology
professor and author Peggy Mason from the University of Chicago, and computer
science professor and Folding@Home director Vijay Pande - will supplement your
knowledge through video lectures. They will also provide challenging
assessments, interactive exercises during each lesson, and the opportunity to
use a mobile app to keep up with your coursework. Coursera also partners with
the US State Department to create “learning hubs” around the world. Students
can get internet access, take courses, and participate in weekly in-person
study groups to make learning even more collaborative. Begin your journey into
the mysteries of the human brain by taking courses in neuroscience. Learn how
to navigate the data infrastructures that multinational corporations use when
you discover the world of data analysis. Follow one of Coursera’s “Skill
Tracks”. Or try any one of its more than 560 available courses to help you
achieve your academic and professional goals.
Provider Subject Specialization
Humanities
Sciences & Technology
Course Description
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 me...
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).
