首页 > 其他分享 >golang goroutine

golang goroutine

时间:2023-03-16 17:33:21浏览次数:31  
标签:协程 多个 goroutine golang 并发 线程 进程

一.goroutine基本介绍

1.进程和线程说明介绍

1)进行就是程序在操作系统中的一次执行过程,是系统进行资源分配和调度的基本单位(比如迅雷进程)

2)线程是进程的一个执行实例,是程序执行的最小单元,它是比进程更小的能独立运行的基本单位(比如迅雷中有好几个任务正在下载)

3)一个进程可以创建和销毁多个线程,同一个进程中的多个线程可以并发执行。(并发是时间片很短,来回切换,同一时间只有一个在进行,而不是并行)

4)一个程序至少有一个进程,一个进程至少有一个线程。(比如同时打开一个程序的多个客户端就是起了多个进程)

2.并发和并行

go语言可以把并发转成并行

1)多线程程序在单核上运行,就是并发。多个任务作用在一个cpu上。从微观角度来看,在一个时间点,只有一个任务在执行,多个任务切换进行。

2)多线程程序在多核上运行,就是并行。多个任务作用在多个cpu上。从微观的角度来看,在同一时间点,有多个任务在同事执行。并行速度比并发快。

3.Go协程和Go主线程。(goroutine go中可以跑上w个协程)

1)Go线程(有程序员直接称为线程/可以理解为进程):一个线程上,可以起多个协程。协程是轻量级的线程【编译器做了优化】

2)Go协程的特点

有独立的栈空间、共享程序堆空间、调度由用户控制、协程是轻量级的线程

 

标签:协程,多个,goroutine,golang,并发,线程,进程
From: https://www.cnblogs.com/xiaoxiaomuyuyu/p/17223525.html

相关文章