# Go Concurrency Visually Explained — Semaphore

## Metadata
- Author: [[Brian NQC]]
- Full Title: Go Concurrency Visually Explained — Semaphore
- Category: #articles
- Summary: Go Concurrency Visually Explained — Semaphore: This article explains the concept of Semaphore in Go programming language through a visual analogy of swimmers sharing swimming lanes. It demonstrates how Semaphore can be used to control concurrent access to shared resources, allowing a limited number of Goroutines to access the resource at the same time. The article also provides code examples on how to implement Semaphore using the built-in sync package or by creating a custom Semaphore using channels.
- URL: https://blog.stackademic.com/go-concurrency-visually-explained-semaphore-3ffe23f11388
## Highlights
- at the airport, no matter how long the queue of passengers is, the maximum number of passengers allowed to check-in concurrently is the number of open counters. In computer science, such concurrent access use cases are modelled with **Semaphore**. In this article, I will be visually explaining how **Semaphore** works. I will also share with you a simple way to implement **Semaphore** using channels in Golang. ([View Highlight](https://read.readwise.io/read/01jv3atatb9s9er8tybsbwh67m))