Skip to content

Latest commit

 

History

History
34 lines (24 loc) · 2.45 KB

week-11.md

File metadata and controls

34 lines (24 loc) · 2.45 KB

WEEK 11: OS and concurrency

Week ZERO Video

Today, even “budget” laptops and mobile phone have multiple cores. Understanding concepts like Threads, Locks, Synchronization, etc. are beneficial whether you are building a mobile app or a web-scale service.

Just like System Design interview questions — Multi-Threading and Concurrency Interview questions are useful in gauging your level. A junior engineer will struggle with these questions (and are expected to learn more on the job). A relatively senior engineer is supposed to do better in such questions as they would be responsible for writing a lot of code that takes advantage of multiple cores/threads.

Java Multithreading and Concurrency for Senior Engineering Interviews is a good resource to check out for more guidance.

Learning Objectives

  1. Be able to define Concurrency, Threading, Parallelism
  2. Be able to explain thread safety
  3. Consider the "paralells" between threads on a CPU and large scale distributed systems (ha ha)

Lesson plan

  1. https://youtu.be/3RvkfuXUv1c?t=323 why use a multi-processor system?
  2. https://www.youtube.com/watch?v=0KAGazeMZ2o Simple multithreading
  3. https://www.youtube.com/watch?v=iKtvNJQoCNw Lecture 1, unit 1: Introduction to Concurrency (12 minutes)
  4. https://www.youtube.com/watch?v=7ENFeb-J75k Multithreading Code - Computerphile (15 min - advanced)
  5. https://www.youtube.com/watch?v=Tn0u-IIBmtc Multitasking, Multithreading, Multiprocessing (10 min)
  6. https://www.youtube.com/watch?v=pWTtPnwialI what is thread safety? (16 minutes)
  7. https://www.journaldev.com/1162/java-multithreading-concurrency-interview-questions-answers threading interview questions
  8. https://dzone.com/articles/top-15-java-multithreading-concurrency-interview-q more threading interview question samples
  9. https://www.youtube.com/watch?v=ajjOEltiZm4 distributed systerms explained
  10. https://www.youtube.com/watch?v=w9GP7MNbaRc Distributed Systems Architecture InfoQ (41 minutes)
  11. https://www.youtube.com/watch?v=9kKQ8uLK8mk Laws of programming with Concurrency (50 minutes - way too smart! :) )

Resources

  1. https://www.youtube.com/channel/UCCb9_Kn8F_Opb3UCGm-lILQ Microsoft Research youtube channel
  2. https://en.wikipedia.org/wiki/Flynn%27s_taxonomy Flynn's taxonomy