惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

WordPress大学
WordPress大学
G
Google Developers Blog
M
MIT News - Artificial intelligence
Vercel News
Vercel News
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
GbyAI
GbyAI
B
Blog RSS Feed
Blog — PlanetScale
Blog — PlanetScale
Microsoft Security Blog
Microsoft Security Blog
V
Visual Studio Blog
Stack Overflow Blog
Stack Overflow Blog
雷峰网
雷峰网
The Cloudflare Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
F
Fortinet All Blogs
L
LangChain Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
A
About on SuperTechFans
T
The Blog of Author Tim Ferriss
B
Blog
J
Java Code Geeks
Hugging Face - Blog
Hugging Face - Blog
I
InfoQ
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com

博客园 - 远洪

大模型常用术语 windows 使用sshAgent 加载秘钥 再次认识java反射 再次认识java注解 再次认识java泛型 java中类的分类 java类中的成员变量,静态变量与局部变量 再谈java枚举enum 使用CCProxy让手机访问电脑能访问的网址 playwright启动后报错net::ERR_CERT_COMMON_NAME_INVALID 解决方法 debian 或ubuntu安装使用tigervnc python 实例属性、类属性、实例方法、类方法、静态方法 python面向对象封装,私有变量 docker compose使用 docker 自定义网络 Dockerfile 使用 go语言多态中的类型断言 java中的多态与golang中的多态 golang 定义接口
golang进程(主线程)与协程
远洪 · 2024-01-12 · via 博客园 - 远洪

概念

主线程:golang 中的主线程(在go中主线程就是进程,相比与其他编程语言叫法不一样)

协程:golang中协程是轻量级的线程(相比于其他语言,只有进程和线程);python中有进程和线程的概念,也有协程的概念;python中的协程通过async 来实现

并发与并行的概念

并发:在一个cpu上有10个线程,每个线程10毫秒(进行轮番操作),从人的角度看,好像这10个线程都在运行,单重微观来看,在某一个时间点只有一个线程在执行,这就是并发。

并行:在多个cpu上(例如10个cpu)有10个线程在执行,每个线程执行10毫秒(各自在不同的cpu上执行),从人的角度上来看,这10个线程都在执行,从微观角度来看,这10个显示也是都在执行,这就是并行。

go语言协程简单实现

package main

import (
    "fmt"
    "strconv"
    "time"
)

func GoPrintTest(){
    for i := 0;i < 3;i++ {
        fmt.Println("协程执行:" + strconv.Itoa(i))
        time.Sleep(1 * time.Second)
    }
}

func main(){
    // 通过 go 关键字启动一个协程
    go GoPrintTest()

    for i := 0;i < 3;i++ {
        fmt.Println("主线程执行:" + strconv.Itoa(i))
        time.Sleep(1 * time.Second)
    }
}