Compared: Thread vs Process, Threads(User Space, Kernel Space, Green Threads), Memory Layout(Process(C++,Rust,Go,Java), Thread)
Thread Creation: CPP(Threadclass, CPP Functor), Rust (Normal, Scoped), Go (goroutines), Python, POSIX, Java(OS Thread, Green Threads), Windows
Joinable Detachable Threads
Synchronization
Synchronization Methods: C++, Golang, Java, Python
Problems in sync: Dining Philospher, n Producer n Consumer
  Rust: Arc, Arc<mutex>
  C++: condition_variable
  mutex: C++, POSIX, Rust
  Go: Channels, Atomics
Communication
  Interprocess (IPC): What is IPC?
   Types: Pipe, Named pipes, fifo, Message Queues, Shared Memory, Memory mapped files
  Interthread:
   Rust Channels
   Go Channels ((Buffered/Unbuffered, Directional/Bidirectional), select(wait on multiple channels)), Go Atomic
Code(multithreaded):
   Building H2O
   Fizz Buzz Multithreaded
   Circular Reference / Deadlock. Resolved using unique_lock <defer_lock>
   LRU Cache Multithreaded 1 Writer, Multiple Readers(shared_lock<shared_mutex>)
   Print FooBar Alternately
   Print Zero Even Odd
   Print in order Execute 3 functions in order
   Rate Limiter: Only 10 req/min allowed. 1 Writer, Multiple Readers(shared_lock<shared_mutex>)
   Stream Logger: Logger that receives a stream of log messages along with their timestamps (in seconds). and print after 10 seconds

Thread Pool: Java, C++, Go, Rust