Master Java Multithreading Programming from Zero (Modern)
Master Java Multithreading Programming from Zero (Modern), Learn Java threading programming using modern java techniques (Lambda’s & Streams). Hands-on Step by Step approach.
Course Description
******* Course Overview *******
Welcome to this Amazing course on Java Multi-threading programming.
The course will guide you through the important aspects of multi-threading in java.
The course will provide an in-depth understanding of Threading and Parallel programming in java using modern java techniques and syntax
We will be building real world java threading applications using modern java technology like Lambda’s and Streams
The course is for beginners are well as for experienced programmers
Each of my courses come with:
Amazing Hands-on Step By Step Learning Experiences
Real Implementation Experience
The below are the list of modules covered in this course.
***************Course details**********************
Section 1:Introduction
Step-01: Introduction
Step-02: Thread Introduction
Step-03: Java Development Kit Installation Overview
Step-04: Installing Intellij IDEA for Windows
Step-05: IntelliJ IDEA Configuration
Step-04: Git Repository Link
Step-05: Development Environment Setup – Import Code
Section 2:Multi-Threading Basics
Step-01: Sequential Processing
Step-02: Parallel Programming with Thread Class
Section 3:Lambda Expressions
Step-01: What is Lambda
Step-02: Lambda Expression (Part 1)
Step-03: Lambda Expression (Part 2)
Step-04: Runnable Example With Lambda
Step-05: Comparator Example With Lambda
Step-06: Callable Example With Lambda
Section 4:Multi-Threading Basics (Part 2)
Step-01: Parallel Programming with Runnable Interface
Step-02: Joins
Step-02: Volatile
Step-04: DeadLock And LiveLock
Step-05: Synchronization
Step-06: Synchronized Methods
Step-07: Synchronized Blocks
Step-08: Wait, Notify, NotifyAll
Step-09: Locks
Step-10 Semaphore
Step-11: Executor
Step-11: Executor With Runnable and Callable
Step-13: Callable & Future
Section 5:Concurrent Utilities
Step-01: CountDownLatch
Step-02: Cyclic Barrier
Step-03: Blocking Queue
Step-04: Array Blocking Queue
Step-05: Delay Queue
Step-06: Linked Blocking Queue
Step-07: Priority Blocking Queue
Step-08: Synchronous Queue
Section 6:Concurrent Collections
Step-01: Difference b/w Traditional & Concurrent Collections
Step-02: Concurrent HashMap
Step-03 Navigable Map
Section 7:Functional Interfaces and Lambdas (Lambda Part 2)
Step-01: Functional Interfaces
Step-02: Consumer Functional Interface (Part 1)
Step-03: Consumer Functional Interface (Part 2)
Step-04: IntConsumer, LongConsumer, DoubleConsumer
Step-04: BiConsumer Functional Interface
Step-05: BiConsumer Functional Interface (Part 2)
Step-06: Predicate Functional Interface (Part 1)
Step-07: Predicate Functional Interface (Part 2)
Step-08: IntPredicate, LongPredicate, DoublePredicate
Step-09: Predicate & BiConsumer
Step-10: BiPredicate Functional Interface
Step-11: Function (Part 1)
Step-12: Function (Part 2)
Step-13: BiFunction
Step-14: Unary Operator
Step-15: Binary Operator
Step-16: Supplier
Step-17: Method Reference (::)
Step-18: Examples of Method Reference
Step-19: Convert to Method Reference
Step-20: Constructor Reference
Section 8:Lambda Variable Scope
Step-01: Variable Scope, Final & Effectively Final
Section 9: RealWorld MultiThreading Example Using Lambda
Step-01: Bank Transfer Example
Section 10:Stream
Step-01: Stream Introduction (Part 1)
Step-02: Stream Introduction (Part 2)
Step-03: Inside Streams
Step-04: Collections vs Streams
Step-05: Debugging Stream
Section 11:Stream Operations
Step-01: map()
Step-02: flatMap()
Step-03: distinct(), count(), sorted(), allMatch()…
Step-04: Customized sort using comparator
Step-05: filter()
Step-06: reduce() (Part 1)
Step-07: reduce (Part 2)
Step-08: map + filter + reduce
Step-09: max() with stream and reduce
Step-10: min() with stream and reduce
Step-11: limit() and skip()
Step-12: findAny() and findFirst()
Section 12: Stream Generators
Step-01: Generating Stream with of(), iterate(), generate()
Section 13:Numeric Streams
Step-01: Introduction
Step-02: IntStream
Step-03: LongStream
Step-04: DoubleStream
Step-04: sum(), max(), min(), average()
Step-05: Boxing, Unboxing
Step-06: mapToObj(), mapToLong, mapToDouble()
Section 14:Collectors Operations
Step-01: joining
Step-02: counting()
Step-03: mapping()
Step-04: minBy(), maxBy()
Step-05: summingInt(), averagingInt()
Step-06: groupingBy (Part 1)
Step-07: groupingBy (Part 2)
Step-08: groupingBy (Part 3)
Step-10: maxBy(), minBy(), collectingAndThen(), summarizingInt()
Step-11: partitioningBy()
Section 15:Parallel Streams
Step-01: Introduction to Parallel Streams
Step-02: Sequential vs Parallel Performance (Part 1)
Step-03: Sequential vs Parallel Performance (Part 2)
Section 16:Fork-Join
Step-01: Fork-Join Framework Introduction
Step-02: Fork Join Example
Section 17:References
Section 18:Dining Philosopher Problem
Step-01: Dining Philosopher Problem Solution