Mastering Threads LIVE - June 2020

From the 15-19 June 2020, we are running our Mastering Threads Course LIVE.

Abstract

We live in an age of an increasing need for high speed computing. We can no longer wait for faster CPUs. To push computers to their limits, we must harness the power of parallel and concurrent computing. But we must do this correctly and safely, and to do so, we need a deep understanding of the concepts. And lots of practice!

We start on day 1 with the basics of threads and jump in at the deep end by writing a thread pool. Day 2 finds us marching deeper into the labyrinth. We look at the Secrets of Concurrency: the laws that help us to write correct threaded code. Our journey continues on day 3 with the higher-level constructs that make threading much easier to use. This leads us on day 4 to diagnosing race conditions, deadlocks and other threading problems.

What you'll learn - and how you can apply it

  • Correct use of the synchronized keyword
  • How to communicate between threads using signals
  • How to correctly manage thread interruptions
  • Visibility of data between threads
  • Higher-level constructs such as ThreadPoolExecutor, CompletionService and various synchronizers
  • Detecting and solving threading issues

How do these LIVE classes work?

We have two sessions per day with the same content (but most likely, different student questions). The early session is scheduled at a good time for Europe/APAC from 10am-12pm London time (that is 11am-1pm Berlin, 2:30-4:30pm Bangalore, and 7-9pm Sydney). The later session is at a time more convenient for America/Europe from 9-11am Los Angeles time (that is 12-2pm New York, 5-7pm London, 6-8pm Berlin, 9:30-11:30pm Bangalore).

Some sessions can be shorter than 2 hours, and some may be a bit longer. We try our best to keep it below 2 hours. It all depends on how many questions we get. Each session ends with exercises that you should try to complete before the next session. We begin the sessions with walkthroughs and questions from the previous day. Recordings of each day become available within a couple of hours after completion to help you review and prepare for the next day.\

Once you enrol in this course, you are automatically signed up for the webinar. Our system will send you login details. These are personal to you so please do not share them (otherwise you might lose access to the course).

Schedule

Day 1

0: Welcome

  • Welcome to the course and how to get the most from your learning

1: Basics of Threads

  • Why Use Threads?
  • Threading Models
  • Parallel Computing vs Concurrent Computing
  • Java Memory Model (JSR 133)
  • Creating New Threads
  • Shared Memory with Multithreading
  • Synchronized
  • Thread States
  • Inter-thread Communication

Exercises for day 1 to complete before day 2

  • Exercise/activity description: First exercise is to write a thread pool, learning how inter-thread communication is done

Day 2

Exercise walkthrough

  • We will walk through the exercises from day 1 and do a quick revision

2: The Secrets of Concurrency

  • Sabotaged Doorbell
  • Distracted Spearfisherman
  • Overstocked Haberdashery
  • Blind Spot
  • Leaked Memo
  • Corrupt Politician
  • Micromanager
  • Cretan Driving
  • Sudden Riches
  • Uneaten Lutefisk

Exercises for day 2 to complete before day 3

  • Exercise/activity description: We improve the inter-thread communication by fixing the handling of the InterruptedException

Day 3

Exercise walkthrough

  • We will walk through the exercises from day 2 and do a quick revision

3: Applied Threading Techniques

  • Executors
  • Callable and Future
  • CompletionService
  • CountDownLatch
  • Semaphore
  • BlockingQueues
  • Unhandled Exceptions
  • ThreadLocal
  • Stopping Threads
  • Shutdown Hooks

Exercises for day 3 to complete before day 4

  • Exercise/activity description: Our thread pool is refactored to use blocking queues for inter-thread communication

Day 4

Exercise walkthrough

  • We will walk through the exercises from day 3 and do a quick revision

4: Threading Problems

  • Race Conditions
  • Starvation
  • Fairness
  • Deadlock
  • Analyzing Thread Dumps
  • Livelock

Exercises for day 4 to complete before day 5

  • Exercise/activity description: We need to detect and fix race conditions and deadlocks in these exercises

Day 5

Exercise walkthrough

  • We will walk through the exercises from day 4 and do a quick revision

5: Conclusion

  • Course wrap-up and next steps

Preparation

  • This training is for intermediate to advanced Java programmers wanting to learn how threading works in Java.
  • Students should download and install the exercises found in the Resources chapter of the course material

Recommended Reading

  • Java Concurrency in Practice by Brian Goetz

Your Instructor


Dr Heinz M. Kabutz
Dr Heinz M. Kabutz

Heinz Kabutz is the author of The Java Specialists’ Newsletter, a publication enjoyed by tens of thousands of Java experts in over 150 countries. He has been a Java Champion since 2005.


Frequently Asked Questions


How long do I have access to a fully paid course?
How does lifetime access sound? After enrolling, you have unlimited access to this course for as long as you like - across any and all devices you own. Furthermore, if we move to another platform, we will offer you a free transfer of your account for all the courses that you have purchased.
Can I pay via PayPal?
Yes, you can for outright purchases, but not for recurring payments such as paying by installments.
Can I get back the EU VAT?
Absolutely. First off, be sure to enter the VAT number in the appropriate field during the payment process. Then contact Teachable and ask them to reimburse you the VAT.
May I share my login details with my colleagues?
Unfortunately not. The terms of usage are for a single license. Teachable tracks your progress through the curriculum, so you won't know how much you have watched. We offer discounts on bulk licenses by one company. Please contact us for bulk licensing.
May we use the course for running in-house courses?
You may, as long as each of the students in the class has a valid license for that course. For example, some companies run lunch time Design Patterns study groups using our material. This is an effective way to learn. Please contact us for bulk licensing.
What if I am unhappy with the course?
We would never want you to be unhappy! If you are unsatisfied with your purchase, contact us in the first 14 days to tell us what you are unhappy about, and we will give you a full refund and deregister you from the course.
When does the course start and finish?
The course starts now and never ends! It is a completely self-paced online course - you decide when you start and when you finish. We do recommend putting time aside and setting goals to complete the course.
Can I watch the course offline during my commute?
Teachable have an iOS app that lets you watch offline. Android is not supported unfortunately.

This course is closed for enrollment.