Introduction
Thread vs Process, Why processes
Threads
Thread Creation:
CPP(Threadclass, CPP Functor), Rust (Normal, Scoped), Go (goroutines), Python, POSIX, Java, Windows
Joinable Detachable Threads
Synchronization
What is Synchronization?
Problems in sync:
Dining Philospher, n Producer n Consumer
Synchronization Methods:
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:
Methods List: Pipe,
Channels(Rust, go), Named pipes, fifo, Message Queues, Shared Memory,
Memory mapped files
Channels:
Rust
Golang:
Types(Buffered/Unbuffered, Directional/Bidirectional), select(wait on
multiple channels)