<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Goroutine on</title><link>https://harryzhang.cn/tags/goroutine/</link><description>Recent content in Goroutine on</description><generator>Hugo</generator><language>zh-CN</language><lastBuildDate>Sat, 25 Mar 2023 15:42:00 +0000</lastBuildDate><atom:link href="https://harryzhang.cn/tags/goroutine/index.xml" rel="self" type="application/rss+xml"/><item><title>Go 协程调度原理及应用</title><link>https://harryzhang.cn/2023-03-25/go-goroutine-scheduler/</link><pubDate>Sat, 25 Mar 2023 15:42:00 +0000</pubDate><guid>https://harryzhang.cn/2023-03-25/go-goroutine-scheduler/</guid><description>&lt;h2 id="什么是协程"&gt;什么是协程？&lt;/h2&gt;
&lt;h3 id="进程和线程"&gt;进程和线程&lt;/h3&gt;
&lt;p&gt;一个应用程序时运行在操作系统上的一个进程。&lt;strong&gt;进程&lt;/strong&gt;是一个运行在自己独立内存空间的独立执行体，是操作系统进行资源分配的最小单位。一个进程则有一个或多个线程组成，这些&lt;strong&gt;线程&lt;/strong&gt;是共享进程内存地址空间的执行体，是操作系统进行任务调度的最小单位。而使用多线程进行工作时，由于共享父进程的内存空间等资源，访问同一个数据需要对其进行加锁，保证同一时间只有一个线程操作一个数据。这样不仅会提高编码的复杂度，还会有多个线程抢占锁、线程切换带来的额外开销。&lt;/p&gt;</description></item></channel></rss>