Parallel and Concurrent Programming with Java 1
2h 16mAdvanced2019-05-30
Authors

Barron Stone
Electrical Engineer

Olivia Chiu Stone
Programmer, Engineer
Course details
Parallel programming unlocks a program’s ability to execute multiple instructions simultaneously. It increases the overall processing throughput and is key to writing faster and more efficient applications. This training course introduces the basics of parallel programming in Java, providing the foundational knowledge you need to write more efficient, performant code. Instructors Barron and Olivia Stone explain concepts like threading and mutual exclusion in a fun and informative way, relating them to everyday activities you perform in the kitchen. To cement the ideas, they demo them in action using Java. Each lesson is short and practical, driving home the theory with hands-on techniques.
Learning objectives
Parallel vs. sequential computing
Shared vs. distributed memory
Threads
Execution scheduling
Thread lifecycle
Mutual exclusion
Synchronized methods
Locks
Checking for liveness
Learning objectives
Parallel vs. sequential computing
Shared vs. distributed memory
Threads
Execution scheduling
Thread lifecycle
Mutual exclusion
Synchronized methods
Locks
Checking for liveness
Skills covered
JavaProgramming FoundationsOracleProgramming LanguagesSoftware DevelopmentDeep Dive (X:Y)
Concepts
0. Introduction
- 01 - Learn parallel programming basics
- 02 - What you should know
- 03 - Java SDK and IntelliJ IDEA
1. Parallel Computing Hardware
- 04 - Sequential vs. parallel computing
- 05 - Parallel computing architectures
- 06 - Shared vs. distributed memory
2. Threads and Processes
- 07 - Thread vs. process
- 08 - Thread vs. process - Java demo
- 09 - Concurrent vs. parallel execution
- 10 - Execution scheduling
- 11 - Execution scheduling - Java
- 12 - Thread lifecycle
- 13 - Thread lifecycle - Java demo
- 14 - Thread attributes - Java demo
- 15 - Runnable vs. thread - Java demo
- 16 - Daemon thread
- 17 - Daemon thread - Java demo
3. Mutual Exclusion
- 18 - Data race
- 19 - Data race - Java demo
- 20 - Mutual exclusion
- 21 - Mutual exclusion - Java demo
- 22 - Atomic variable - Java demo
- 23 - Synchronized method - Java demo
- 24 - Synchronized statement - Java demo
4. Locks
- 25 - Reentrant lock
- 26 - Reentrant lock - Java demo
- 27 - Try lock
- 28 - Try lock - Java demo
- 29 - Read-write lock
- 30 - Read-write lock - Java demo
5. Liveness
- 31 - Deadlock
- 32 - Deadlock - Java demo
- 33 - Abandoned lock
- 34 - Abandoned lock - Java demo
- 35 - Starvation
- 36 - Starvation - Java demo
- 37 - Livelock
- 38 - Livelock - Java demo
Conclusion
- 39 - Next steps
Related courses
- Parallel and Concurrent Programming with Java 2
- Complete Guide to Parallel and Concurrent Programming with Java
- Parallel and Concurrent Programming with C++ Part 1
- Parallel and Concurrent Programming with C++ Part 2
- Complete Guide to Parallel and Concurrent Programming with C++
- Python Parallel and Concurrent Programming Part 1
- Python Parallel and Concurrent Programming Part 2
- Complete Guide to Parallel and Concurrent Programming in Python