Cargando…

Effective Concurrency in Go Develop, Analyze, and Troubleshoot High Performance Concurrent Applications with Ease /

Gain a deep understanding of concurrency and learn how to leverage concurrent algorithms to build high-throughput data processing applications, network servers and clients that scale. Key Features Learn about the Go concurrency primitives, Go memory model, and common concurrency patterns Develop the...

Descripción completa

Detalles Bibliográficos
Clasificación:Libro Electrónico
Autor principal: Serdar, Burak (Autor)
Formato: Electrónico eBook
Idioma:Inglés
Publicado: Birmingham : Packt Publishing, Limited, 2023.
Edición:1st edition.
Temas:
Acceso en línea:Texto completo (Requiere registro previo con correo institucional)
Tabla de Contenidos:
  • Cover
  • Title Page
  • Copyright and Credit
  • Dedicated
  • Contributors
  • Table of Contents
  • Preface
  • Chapter 1: Concurrency
  • A High-Level Overview
  • Technical Requirements
  • Concurrency and parallelism
  • Shared memory versus message passing
  • Atomicity, race, deadlocks, and starvation
  • Summary
  • Question
  • Further reading
  • Chapter 2: Go Concurrency Primitives
  • Technical Requirements
  • Goroutines
  • Channels
  • Mutex
  • Wait groups
  • Condition variables
  • Summary
  • Questions
  • Chapter 3: The Go Memory Model
  • Why a memory model is necessary
  • The happened-before relationship between memory operations
  • Synchronization characteristics of Go concurrency primitives
  • Package initialization
  • Goroutines
  • Channels
  • Mutexes
  • Atomic memory operations
  • Map, Once, and WaitGroup
  • Summary
  • Further reading
  • Chapter 4: Some Well-Known Concurrency Problems
  • Technical Requirements
  • The producer-consumer problem
  • The dining philosophers problem
  • Rate limiting
  • Summary
  • Chapter 5: Worker Pools and Pipelines
  • Technical Requirements
  • Worker pools
  • Pipelines, fan-out, and fan-in
  • Asynchronous pipeline
  • Fan-out/fan-in
  • Fan-in with ordering
  • Summary
  • Questions
  • Chapter 6: Error Handling
  • Error handling
  • Pipelines
  • Servers
  • Panics
  • Summary
  • Chapter 7: Timers and Tickers
  • Technical Requirements
  • Timers
  • running something later
  • Tickers
  • running something periodically
  • Heartbeats
  • Summary
  • Chapter 8: Handling Requests Concurrently
  • Technical Requirements
  • The context, cancelations, and timeouts
  • Backend services
  • Distributing work and collecting results
  • Semaphores
  • limiting concurrency
  • Streaming data
  • Dealing with multiple streams
  • Summary
  • Chapter 9: Atomic Memory Operations
  • Technical Requirements
  • Memory guarantees
  • Compare and swap
  • Practical uses of atomics
  • Counters
  • Heartbeat and progress meter
  • Cancellations
  • Detecting change
  • Summary
  • Chapter 10: Troubleshooting Concurrency Issues
  • Technical Requirements
  • Reading stack traces
  • Detecting failures and healing
  • Debugging anomalies
  • Summary
  • Further reading
  • Index
  • Other Books You May Enjoy