1. Go Arrayshistorical

    Fixed-length value types, copying semantics, indexing, iteration, and their relationship to slices.

  2. Go Sliceshistorical

    Slice descriptors, backing arrays, append/capacity, sharing, copying, and retention pitfalls.

  3. Go deferhistorical

    Deferred calls, LIFO execution, argument evaluation, return interaction, and practical cleanup patterns.

  4. 2.1 Contexthistorical

    Go context trees for cancellation, deadlines, timeouts, and request-scoped values, with lifecycle rules for passing and canceling contexts.

  5. 2.2 sync.WaitGrouphistorical

    Waiting for a group of goroutines to finish with Add, Done, and Wait, including the counter lifecycle and common Add/Wait misuse.

  6. 2.3 The sync Packagehistorical

    A map of Go's shared-memory synchronization primitives: Mutex, RWMutex, Once, Cond, Map, Pool, WaitGroup, and atomic operations.

  7. 2.4 sync.Maphistorical

    Go's specialized concurrent map, its intended workloads, read-optimized internal design, atomic map operations, and when a normal map plus mutex is clearer.

  8. sync.Poolhistorical

    Temporary object reuse, GC interaction, per-P optimization, and when pooling helps.

  9. 2.6 Selecthistorical

    How Go `select` waits on multiple channel operations, chooses among ready cases, uses `default`, handles nil channels, timeouts, and cancellation.

  10. sync.Oncehistorical

    Exactly-once process-local initialization and its concurrency semantics.