This course is about the basics of multithreading and concurrent programming with some parallel concepts. In the 21st century this topic is becoming more and more popular with the advent of Big Data and Machine Learning. We will consider the low level concepts such as threads, synchronization and locks. The second chapter will be about concurrent library: of course there are built in classes and interfaces that we can use when implementing multithreaded applications. Then we develope little programs as show-cases for multithreading: the dining-philosopher problem or the students in library simulation. Last chapter is about parallel computing and MapReduce.
Section 1 - Multithreading Theory:
Section 2 - Threads Manipulation:
Section 3 - Inter-Thread Communication:
memory management of threads
synchronization and synchronized blocks
locks
wait and notify
producer-consumer problem and solution
concurrent collections
latch, cyclic barrier and blocking queues
delay queue, priority queue and concurrent maps
Section 4 - Multithreading Concepts:
Section 6 - Executors and ExecutorServices:
executors
executor services
Section 6 - Concurrent Collections:
Section 7 - Simulations:
Section 8 - Parallel Algorithms:
Section 9 - Fork-Join Framework
Section 10 - Stream API
Section 11 - BigData and MapReduce:
Thanks for joining my course, let's get started!