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
EbookLicense
End-User Warranty And License Agreement
1. Grant Of License
Manning Has Authorized The Download By You Of An UnrestrictedNumber Of Copies Of The Electronic Book (Ebook) In Any Of The AvailableFormats. Manning Grants You A Nonexclusive, Nontransferable License To Use TheEbook According To The Terms And Conditions Herein. This License AgreementPermits You To Install The Ebook On Any And All Your Devices For Your PersonalUse Only.
2. Restrictions
You Shall Not: (1) Share, Resell, Rent, Assign, Timeshare,Distribute, Or Transfer All Or Part Of The Ebook Or Any Rights GrantedHereunder To Any Other Person; (2) Duplicate The Ebook, Except For A SingleBackup Or Archival Copy; (3) Remove Any Proprietary Notices, Labels, Or MarksFrom The Ebook; (4) Transfer Or Sublicense Title To The Ebook To Any OtherParty.
3. Intellectual Property Protection
The Ebook Is Owned By Manning And Is Protected By United StatesAnd International Copyright And Other Intellectual Property Laws. ManningReserves All Rights In The Ebook Not Expressly Granted Herein. This License AndYour Right To Use The Ebook Terminate Automatically If You Violate Any Part OfThis Agreement. In The Event Of Termination, You Must Remove The Original AndAny Copies Of The Ebook From All Your Devices.
4. Source Code Supplementary Material
Any Source Code Files Provided As A Supplement To The Book AreFreely Available To The Public For Download. Reuse Of The Code Is Permitted, InWhole Or In Part, Including The Creation Of Derivative Works, Provided That YouAcknowledge That You Are Using It And Identify The Source: Title, Publisher AndYear.
5. Limited Warranty
Manning Warrants That The Ebook Files, A Copy Of Which You AreAuthorized To Download, Are Free From Defects In The Operational Sense ThatThey Can Be Read By A Pdf Reader Or Epub Reader, Or Other. Except For ThisExpress Limited Warranty, Manning Makes And You Receive No Warranties, Express,Implied, Statutory Or In Any Communication With You, And Manning SpecificallyDisclaims Any Other Warranty Including The Implied Warranty Of MerchantabilityOr Fitness Or A Particular Purpose. Manning Does Not Warrant That The OperationOf The Ebook Will Be Uninterrupted Or Error Free. If The Ebook Was Purchased InThe United States, The Above Exclusions May Not Apply To You As Some States DoNot Allow The Exclusion Of Implied Warranties. In Addition To The AboveWarranty Rights, You May Also Have Other Rights That Vary From State To State.
6. Limitation Of Liability
In No Event Will Manning Be Liable For Any Damages, WhetherArising For Tort Or Contract, Including Loss Of Data, Lost Profits, Or OtherSpecial, Incidental, Consequential, Or Indirect Damages Arising Out Of The UseOr Inability To Use The Ebook.
7. General
This Agreement Constitutes The Entire Agreement Between You AndManning And Supersedes Any Prior Agreement Concerning The Ebook. This AgreementIs Governed By The Laws Of The State Of New York