Learn Concurrent Programming with Go

Cutajar, James

  • 出版商: Manning
  • 出版日期: 2024-01-09
  • 定價: $2,200
  • 售價: 9.5$2,090
  • 語言: 英文
  • 頁數: 328
  • 裝訂: Quality Paper - also called trade paper
  • ISBN: 1633438384
  • ISBN-13: 9781633438385
  • 相關分類: Go 程式語言
  • 立即出貨

相關主題

商品描述

Concurrency doesn't need to be confusing. Start writing concurrent code that improves performance, scales up to handle large volumes of data, and takes full advantage of modern multi-processor hardware.

Too many developers think concurrency is extremely challenging. Learn Concurrent Programming with Go is here to prove them wrong! This book uses the easy-to-grasp concurrency tools of the Go language to demonstrate principles and techniques, steadily teaching you the best practices of effective concurrency. Techniques learned in this book can be applied to other languages.

In Learn Concurrent Programming with Go you will learn how to:

  • Implement effective concurrency for more responsive, higher performing, scalable software
  • Avoid common concurrency problems such as deadlocks and race conditions
  • Manage concurrency using goroutines, mutexes, readers-writer locks, and more
  • Identify concurrency patterns such as pipelining, worker pools, and message passing
  • Discover advantages, limits, and properties of parallel computing
  • Improve your Go coding skills with advanced multithreading topics

Concurrent programming allows multiple tasks to execute and interact simultaneously, speeding up performance and reducing user wait time. In Learn Concurrent Programming with Go, you'll discover universal principles of concurrency, along with how to use them for a performance boost in your Go applications. Expert author James Cutajar starts with the basics of modeling concurrency in your programs, demonstrates differences between message passing and memory sharing, and even introduces advanced topics such as atomic variables and futexes.

Purchase of the print book includes a free eBook in PDF and ePub formats from Manning Publications.

About the technology

You can improve almost any application's performance and responsiveness by introducing concurrency into the codebase. This book will show you how! It starts with the basics of concurrent programming and builds your skills step by step by exploring scenarios you'll face every day as a developer. Author James Cutajar explains each aspect of concurrency in plain language using the intuitive features baked into the Go language.

About the book

Learn Concurrent Programming with Go provides a practical, hands-on introduction to creating software for modern multiprocessor systems. In it, you'll learn how to divide larger programming tasks into independent parts that can run simultaneously. You'll use the Go language to implement common concurrency patterns by utilizing readers-writer locks, semaphores, message passing, and memory sharing. The skills you learn will easily transfer to other languages.

What's inside

  • Prevent deadlocks and race conditions
  • Go concurrency features like goroutines, mutexes, channels, and more
  • Concurrency patterns including pipelining and worker pools

About the reader

For programmers with basic knowledge of Go or another C-style language. No experience in concurrent programming required.

About the author

James Cutajar has been programming for more than 20 years. He's an open source contributor, blogger, tech evangelist, Udemy instructor, and author.

Table of Contents

PART 1 FOUNDATIONS
1 Stepping into concurrent programming
2 Dealing with threads
3 Thread communication using memory sharing
4 Synchronization with mutexes
5 Condition variables and semaphores
6 Synchronizing with waitgroups and barriers
PART 2 MESSAGE PASSING
7 Communication using message passing
8 Selecting channels
9 Programming with channels
PART 3 MORE CONCURRENCY
10 Concurrency patterns
11 Avoiding deadlocks
12 Atomics, spin locks, and futexes

商品描述(中文翻譯)

並行性不需要讓人困惑。開始撰寫能夠提升效能、擴展處理大量資料並充分利用現代多處理器硬體的並行程式碼。

太多開發人員認為並行性非常具有挑戰性,《使用 Go 學習並行程式設計》將證明他們錯了!本書使用 Go 語言易於理解的並行工具,演示原則和技巧,逐步教授您有效並行的最佳實踐。本書所學的技術也可應用於其他語言。

在《使用 Go 學習並行程式設計》中,您將學習如何:
- 實現有效的並行,以獲得更具回應性、更高效能、可擴展的軟體
- 避免常見的並行問題,如死結和競爭條件
- 使用 goroutines、mutex、讀寫鎖等管理並行
- 識別並行模式,如流水線、工作池和訊息傳遞
- 發現並行計算的優勢、限制和特性
- 透過高級多執行緒主題提升您的 Go 編碼技巧

並行程式設計允許多個任務同時執行和互動,加快效能並減少使用者等待時間。在《使用 Go 學習並行程式設計》中,您將了解並行性的普遍原則,以及如何在您的 Go 應用程式中使用它們來提升效能。專家作者 James Cutajar 從建模程式中的並行性基礎開始,演示了訊息傳遞和記憶體共享之間的差異,甚至介紹了原子變數和 futexes 等高級主題。

購買印刷版書籍將包含 Manning Publications 提供的 PDF 和 ePub 格式的免費電子書。

關於技術:
您可以通過在程式碼庫中引入並行性,改善幾乎任何應用程式的效能和回應能力。本書將向您展示如何做到這一點!它從並行程式設計的基礎知識開始,並通過探索您作為開發人員每天都會遇到的情境,逐步建立您的技能。作者 James Cutajar 使用 Go 語言中直觀的功能,以平易近人的語言解釋並行性的每個方面。

關於本書:
《使用 Go 學習並行程式設計》提供了一個實用的、實戰導向的介紹,教授如何為現代多處理器系統創建軟體。在本書中,您將學習如何將較大的程式設計任務分為可以同時運行的獨立部分。您將使用 Go 語言實現常見的並行模式,包括讀寫鎖、信號量、訊息傳遞和記憶體共享。您所學的技能將輕鬆適用於其他語言。

本書內容包括:
- 預防死結和競爭條件
- 使用 goroutines、mutex、channels 等 Go 並行功能
- 並行模式,包括流水線和工作池

關於讀者:
適合具備基本 Go 或其他 C 風格語言知識的程式設計師。無需並行程式設計經驗。

關於作者:
James Cutajar 已經從事程式設計超過 20 年。他是一位開源貢獻者、部落客、技術傳道者、Udemy 講師和作者。

目錄:
第 1 部分 基礎
1. 踏入並行程式設計
2. 處理執行緒
3. 使用記憶體共享進行執行緒通訊
4. 使用互斥鎖進行同步
5. 條件變數和信號量
6. 使用等待組和屏障進行同步

第 2 部分 訊息傳遞
7. 使用訊息傳遞進行通訊
8. 選擇通道
9. 使用通道進行程式設計

第 3 部分 更多並行性
10. 並行模式
11. 避免死結
12. 原子變數、自旋鎖和 futexes

作者簡介

About the author

James Cutajar is a software developer with an interest in scalable, high-performance computing and distributed algorithms. He has worked in the field of technology in various industries for more than 20 years. During his career, he has been an open source contributor, blogger, tech evangelist, Udemy instructor, and author.

作者簡介(中文翻譯)

關於作者

James Cutajar 是一位對可擴展、高效能計算和分散式演算法感興趣的軟體開發者。他在科技領域工作超過20年,曾在不同行業擔任過多種角色,包括開源貢獻者、部落客、技術推廣者、Udemy講師和作家。