Overview:
You will learn how to write safe multi-threaded code that performs well on your hardware. You will learn techniques to ensure visibility of your fields, to build thread safety without explicit locking. You will learn the constructs and explore ways to parallelize your algorithms.
Is this course for you:
- Has your system ever caused some strange behaviors that you could not explain? This often happens at the worst time, such as when your system is very busy. Imagine losing your biggest shopping day!
- Have you ever wondered how some of the more advanced constructs work, such as the ConcurrentHashMap or ConcurrentLinkedQueue?
- Would you like to find out how Read-WriteLocks can cause serious starvation?
- Are you an programmer, interested to learn more?
Objectives:
- Apply key pattern-oriented techniques to develop reusable concurrent software using object-oriented and functional programming language features
- Recognize the inherent and accidental complexities involved with developing concurrent software for clients & servers.
- Understand how patterns and frameworks can and cannot help to alleviate this complexity.
- Know where to find additional sources of information on how to successfully apply pattern-oriented technique to develop robust concurrent programs
Audience:
- Developers, Sr. Programmers, Team Leads, etc…
Pre-Requisite:
- The working assumption for this course is that registered students are proficient in programming. Our goal is to move beyond programming-specific concerns to a point where one can think through a design for a software application.
Course Curriculum
Basics of Concurrency | |||
Concurrency vs parallelism | 00:00:00 | ||
How to Create Concurrent Modules? | 00:00:00 | ||
Threads, Processing, Distributed Computing | 00:00:00 | ||
How Do Concurrent Modules Interact? | 00:00:00 | ||
Shared Memory, Message Passing | 00:00:00 | ||
Synchronisation Constructs | 00:00:00 | ||
Kernel Objects, Light weight synchronisation Lock free | 00:00:00 | ||
Concurrency Anti Patterns | |||
Sleep | 00:00:00 | ||
Abort | 00:00:00 | ||
Suspend | 00:00:00 | ||
Thread Priority | 00:00:00 | ||
Locks | 00:00:00 | ||
Dedicated Threads | 00:00:00 | ||
Concurrency Best Practices | |||
Result Object | 00:00:00 | ||
Cancelation | 00:00:00 | ||
Thread pool | 00:00:00 | ||
I/O Completion | 00:00:00 | ||
Lock free Synchronisation | 00:00:00 | ||
Concurrent Data Structure | 00:00:00 | ||
It Works on my machine | |||
Debugging and Testing | 00:00:00 | ||
Conditional break point | 00:00:00 | ||
Thread dump and Console | 00:00:00 | ||
Debugging race conditions | 00:00:00 | ||
Humble object | 00:00:00 | ||
Distributed Tracing | 00:00:00 | ||
Spike testing | 00:00:00 | ||
Design Patterns for High Concurrency | |||
Master slave | 00:00:00 | ||
Event driven Architecture | 00:00:00 | ||
Reactive Programming | 00:00:00 | ||
Reactor Pattern | 00:00:00 | ||
Proactor Pattern | 00:00:00 | ||
Actor-Based Concurrency | 00:00:00 | ||
Map Reduced | 00:00:00 | ||
Parallel Collections | 00:00:00 | ||
Support in Programming Languages | |||
Functional programming | 00:00:00 | ||
Goroutines in Go | 00:00:00 | ||
Processes in Erlang | 00:00:00 | ||
Green Threads | 00:00:00 | ||
NIO in java | 00:00:00 | ||
TPL in C# | 00:00:00 | ||
High Concurrency Applications | |||
Web Layer | 00:00:00 | ||
Node event loop | 00:00:00 | ||
Nginx master slave | 00:00:00 | ||
Application Layer | 00:00:00 | ||
Akka actor model | 00:00:00 | ||
Project Reactor,Spring WebFlux and RSocket Reactive Streams | 00:00:00 | ||
Netty with NIO | 00:00:00 | ||
Data Layer | 00:00:00 | ||
Cassandra NoSQL distributed database | 00:00:00 | ||
Kafka distributed streaming platform | 00:00:00 | ||
Cache Layer | 00:00:00 | ||
Hazelcast in memory object store | 00:00:00 | ||
Redis distributed cache | 00:00:00 |
Course Reviews
No Reviews found for this course.
0 STUDENTS ENROLLED