Description
In this course, you will :
- Learn how to use Java SE to implement concurrency.
- Begin by creating threads to learn the fundamentals of concurrency.
- Learn about Java's different executors and how to use various strategies such as the join/fork framework.
- Learn how to recognise and resolve threading issues such as deadlocks and livelocks.
- When you finish this course, you will have the skills and knowledge of concurrency in Java needed to implement it in applications and ace the questions on the OCP11 exam about this topic.
Syllabus :
1. Introduction to Concurrency and Threads
- What Is Concurrency?
- Concurrency: Pros and Cons
- What Are Threads?
- Creating Threads
- Runnable and Callable
- Sleep, Interrupt, and Join
2. Synchronized and Locks
- Thread Interference
- Synchronized Keyword
- Lock Framework: Lock Interface and ReentrantLock
3. ExecutorService and Thread Pools
- Executing Tasks Using SingleThreadExecutor
- Submit and Future
- Thread Pools and Executing Tasks
- ScheduledExecutorService
4. Concurrent Collections and Atomic Variables
- Concurrent Collections: What and Why
- Concurrent Collection Interfaces
- Concurrent Collections: Blocking Queues
- Concurrent Collections: SkipList
- Concurrent Collections: CopyOnWrite
- Synchronized Collections
- Atomic Classes
5. Threading Problems
- Liveness and Threading Problems
- Deadlock
- Livelock
- Starvation
- Race Condition