Monday, March 25, 2024 in Blog
… continued from the previous post. Do Not Communicate by Sharing Memory; Instead, Share Memory by Communicating1 This approach can be taken too far. […] But as a high-level approach, using channels to control access makes it easier to …
Friday, March 22, 2024 in Blog
… continued from the previous post. Different Categories of Concurrency When recalling the previous article, a task was subdivided into three subtasks, all working towards a common objective (specifically, merging contributors). The subtasks …
Thursday, March 21, 2024 in Blog
… continued from the previous post. Problems With Concurrency In the first post of this series I was citing two papers that examined common bugs in handling of Go concurrency. We took a long time to arrive here, but I wanted to show that …
Wednesday, March 20, 2024 in Blog
… continued from the previous post. Cancelation Assume we have only a limited amount of time and want to use the data we have until this point. While we could build our own solution, but Go has context.WithTimeout since version 1.7. Let us …
Tuesday, March 19, 2024 in Blog
… continued from the previous post. Back to the Drawing Board Let us keep the original Slow implementation and move parallelization to main: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 package main import ( "sync" …
Monday, March 18, 2024 in Blog
Concurrency Is Not Parallelism1 Recently two interesting observations in “A Study of Real-World Data Races in Golang”2 caught my eye: Observation 1. Developers using Go employ significantly more concurrency and synchronization constructs than in …