Concurrent and Parallel Programming

  1. Language and Library Support
    1. Low-Level Primitives
      1. POSIX Threads
        1. Thread Creation and Management
          1. Mutexes in pthreads
            1. Condition Variables in pthreads
              1. Synchronization Primitives in pthreads
              2. Windows API Threads
                1. Thread Creation and Management in Windows
                  1. Windows Synchronization Objects
                2. C++ Concurrency
                  1. std::thread
                    1. Thread Creation
                      1. Thread Joining
                      2. std::mutex
                        1. std::lock_guard
                          1. std::unique_lock
                            1. std::condition_variable
                              1. std::atomic
                                1. std::future and std::promise
                                  1. Asynchronous Result Handling
                                2. Java Concurrency API
                                  1. java.util.concurrent Package
                                    1. Thread Pools in Java
                                      1. Executors in Java
                                      2. Executor Framework
                                        1. Task Submission
                                          1. Task Execution
                                          2. Java Synchronizers
                                            1. Semaphore in Java
                                              1. CountDownLatch
                                                1. CyclicBarrier
                                                2. Concurrent Collections
                                                  1. Thread-Safe Data Structures in Java
                                                3. Python Concurrency
                                                  1. threading Module
                                                    1. Thread Creation in Python
                                                      1. Thread Synchronization in Python
                                                        1. Use for I/O-Bound Tasks
                                                        2. multiprocessing Module
                                                          1. Process-Based Parallelism in Python
                                                            1. Use for CPU-Bound Tasks
                                                            2. Global Interpreter Lock
                                                              1. Impact on Concurrency in Python
                                                              2. asyncio for Asynchronous Programming
                                                                1. Event Loop
                                                                  1. Coroutines
                                                                    1. Tasks in asyncio
                                                                  2. Go Concurrency
                                                                    1. Goroutines
                                                                      1. Lightweight Threads in Go
                                                                      2. Channels in Go
                                                                        1. Synchronous Communication
                                                                          1. Asynchronous Communication
                                                                          2. The select Statement
                                                                            1. Multiplexing Channel Operations
                                                                          3. Parallel Computing Frameworks
                                                                            1. OpenMP
                                                                              1. Compiler Directives
                                                                                1. Parallel Loops
                                                                                  1. Synchronization Constructs
                                                                                  2. MPI
                                                                                    1. Point-to-Point Communication
                                                                                      1. Collective Communication
                                                                                        1. Process Groups
                                                                                          1. Communicators