Threads
Thread vs Process, Why processes are heavy
Process Memory Layout
User Space, Kernel Space, Green Threads
Thread Memory Layout
Thread Creation:
  CPP(Threadclass, CPP Functor)
  Rust (Normal, Scoped)
  Go (goroutines),
  Python,
  POSIX,
  Java
   OS Thread(Runnable Interface)
   Green Thread(Thread.startVirtualThread(), Thread.ofVirtual(), Virtual thread factory, Virtual thread executor)
  Windows
Joinable Detachable Threads
Synchronization
What is Synchronization?
Problems in sync: Dining Philospher, n Producer n Consumer
Synchronization Methods:
  Java
Methods List: Pipes, Shared Memory, condvar, Semaphores, mutex, Arc<mutex>, Rwlocks, channels
  Rust: Arc, Arc<mutex>
  C++: condition_variable
  mutex: C++, POSIX, Rust
IPC
What is IPC?
IPC Methods:
Types: Pipe, Channels(Rust, go), Named pipes, fifo, Message Queues, Shared Memory, Memory mapped files
  Rust: Channels
  Golang:
   Channels Types(Buffered/Unbuffered, Directional/Bidirectional), select(wait on multiple channels)
    Atomic
Thread Pool
Java
C++
Go
Rust