<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Performance on Gorbunov_Alexey</title><link>https://gorbunovalexey.ru/en/tags/performance/</link><description>Recent content in Performance on Gorbunov_Alexey</description><generator>Hugo</generator><language>en</language><managingEditor>spi4kavg@yandex.ru (Writing stuff)</managingEditor><webMaster>spi4kavg@yandex.ru (Writing stuff)</webMaster><lastBuildDate>Fri, 30 Jan 2026 12:00:00 +0000</lastBuildDate><atom:link href="https://gorbunovalexey.ru/en/tags/performance/index.xml" rel="self" type="application/rss+xml"/><item><title>Concurrency in Go: Channels vs Sync — When to Use Which</title><link>https://gorbunovalexey.ru/en/posts/konkurentnost-v-go-channels-vs-sync/</link><pubDate>Fri, 30 Jan 2026 12:00:00 +0000</pubDate><author>spi4kavg@yandex.ru (Writing stuff)</author><guid>https://gorbunovalexey.ru/en/posts/konkurentnost-v-go-channels-vs-sync/</guid><description>A complete guide to concurrency in Go: channels vs the sync package. We cover when to use channels and when to use a mutex. Worker pools, fan-out/fan-in, semaphore patterns. Performance benchmarks, race conditions and how to avoid them. Practical examples from production.</description></item></channel></rss>