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
Introduction
- Learn parallel programming basics
- What you should know
- Java SDK and IntelliJ IDEA
Parallel Computing Hardware
- Sequential vs. parallel computing
- Parallel computing architectures
- Shared vs. distributed memory
Threads and Processes
- Thread vs. process
- Thread vs. process - Java demo
- Concurrent vs. parallel execution
- Execution scheduling
- Execution scheduling - Java
- Thread lifecycle
- Thread lifecycle - Java demo
- Thread attributes - Java demo
- Runnable vs. thread - Java demo
- Daemon thread
- Daemon thread - Java demo
Mutual Exclusion
- Data race
- Data race - Java demo
- Mutual exclusion
- Mutual exclusion - Java demo
- Atomic variable - Java demo
- Synchronized method - Java demo
- Synchronized statement - Java demo
Locks
- Reentrant lock
- Reentrant lock - Java demo
- Try lock
- Try lock - Java demo
- Read-write lock
- Read-write lock - Java demo
Liveness
- Deadlock
- Deadlock - Java demo
- Abandoned lock
- Abandoned lock - Java demo
- Starvation
- Starvation - Java demo
- Livelock
- Livelock - Java demo
Conclusion
- Next steps