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

推荐订阅源

G
GRAHAM CLULEY
Recorded Future
Recorded Future
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
小众软件
小众软件
Microsoft Azure Blog
Microsoft Azure Blog
博客园 - 叶小钗
A
About on SuperTechFans
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
月光博客
月光博客
MongoDB | Blog
MongoDB | Blog
Apple Machine Learning Research
Apple Machine Learning Research
罗磊的独立博客
人人都是产品经理
人人都是产品经理
Engineering at Meta
Engineering at Meta
WordPress大学
WordPress大学
博客园 - Franky
Google DeepMind News
Google DeepMind News
Security Latest
Security Latest
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Project Zero
Project Zero
N
News and Events Feed by Topic
I
Intezer
C
Check Point Blog
V
Visual Studio Blog
T
Tenable Blog
博客园 - 司徒正美
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
PCI Perspectives
PCI Perspectives
H
Help Net Security
www.infosecurity-magazine.com
www.infosecurity-magazine.com
The Cloudflare Blog
SecWiki News
SecWiki News
Vercel News
Vercel News
爱范儿
爱范儿
Recent Announcements
Recent Announcements
Spread Privacy
Spread Privacy
T
Threatpost
Last Week in AI
Last Week in AI
V
V2EX
O
OpenAI News
M
MIT News - Artificial intelligence
博客园 - 【当耐特】
腾讯CDC
Forbes - Security
Forbes - Security
Microsoft Security Blog
Microsoft Security Blog
AI
AI
Hacker News - Newest:
Hacker News - Newest: "LLM"
F
Full Disclosure
C
CXSECURITY Database RSS Feed - CXSecurity.com
P
Palo Alto Networks Blog

博客园 - 远洪

大模型常用术语 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)
    }
}