goroutine 和 sync.WaitGroup
原创 2023-06-20 10:53:43
59阅读
package main import ( "fmt" "io" "io/ioutil" "net/http" "os" "time" ) func main() { start := time.Now() ch := make(chan string) for _, url := range os.Args[1:] { go fetch(url, ch) // sta
转载 2018-11-21 09:22:00
83阅读
2评论
数据结构 调度相关的数据结构有三个,M(线程),P(调度器),G(goroutine) M表示线程,P作为调度器用来帮助每个线程管理自己的goroutine,G就是golang的协程。
转载 2020-07-07 22:54:00
582阅读
2评论
1. 概念 go中可以并发执行的活动单元称为goroutine当一个go程序启动时,一个执行main function的goroutine会被创建,称为main goroutinego func() 使用go语句开启一个新的goroutine之后,go语句之后的函数调用将在新的goroutine中执 ...
转载 2021-10-13 15:24:00
116阅读
2评论
goroutinepackage main import "fmt" import "time" func printn(id int){ for i := 0;i<10;i++ { fmt.Println(id,":",i) } } func main(){ for&nbs
原创 2017-03-06 17:14:39
1016阅读
go语言进程,go语言线程
原创 2022-12-19 10:00:22
695阅读
带缓冲的 channel 在缓冲区未满时,发送操作不会阻塞;在缓冲区有数据时,接收操作不会阻塞。无缓冲的 channel 在发送和接收
原创 3月前
42阅读
Golang 如何防止 goroutine 泄露
原创 2023-02-26 13:23:34
150阅读
golang 入门
转载 2019-05-31 18:38:37
379阅读
goroutine goroutine 是 Go 的并发模型的核心概念。为了理解 goroutine,我们来定义几个术语。第一个是进程。进程是程序的实例,由计算机的操作系统运行。操作系统将一些资源(如内存)与进程相关联,并确保其他进程不能访问它们。进程由一个或多个线程组成。一个线程是一个执行单元,由
原创 2022-07-10 00:12:41
10000+阅读
M代表主线程向下执行,p上下文可以根据系统情况开启协程去工作。M可能有很多,可能全部在一个CPU上面,也可能
原创 2023-10-03 09:30:03
172阅读
首先得了解: 进程 线程 并发 并行 Go协程和Go主线程: 主线程:相当于进程;直接作用于cpu上,是重量级的,是物理态的; 协程:相当于轻量级的线程;由主协程开启,是逻辑态的; Go协程的特点: 有独立的栈空间 共享程序堆单元 调度由用户控制 协程是轻量级的线程 举个例子: package ma
转载 2019-11-28 16:15:00
168阅读
2评论
摘要:今天我们一起盘点一下Golang并发那些事儿。GolangGolangGolang 真的够浪,今天我们一起盘点一下Golang并发那些事儿,准确来说是goroutine,关于多线程并发,咱们暂时先放一放(主要是俺现在还不太会,不敢出来瞎搞)。关于golang优点如何,咱们也不扯那些虚的。反正都是大佬在说,俺只是个吃瓜群众,偶尔打打酱油,逃~。说到并发,等等一系列的概念就出来了,为了做个照
原创 2021-05-24 21:52:41
362阅读
golang goroutine、channel、time代码示例
原创 2022-06-25 00:29:45
92阅读
一、Golang简介1.1概述Golang语言是Google公司开发的新一代编程语言,简称Go语言,Go 是有表达力、简洁、清晰和有效率的。它的并行机制使其很容易编写多核和网络应用,而新奇的类型系统允许构建有弹性的模块化程序。 Go 编译到机器码非常快速,同时具有便利的垃圾回收和强大的运行时反射。而他最广为人知的特性便是语言层面上对多核编程的支持,他有简单的关键字go来实现并行,就像下面这样: 1
原创 2021-12-23 22:45:44
593阅读
文章目录:0x00 如何自定义Gin服务配置及其启动多个服务?0x01 如何优雅的关闭或者重启Gin应用程序?1.使用 chan 通道监听中断信号(SIGINT和SIGTERM)2.使用 os/exec 包来执行Gin平滑重启3.使用 fvbock/endless 包实现访问指定路由平滑重启Gin服务0x00 如何自定义Gin服务配置及其启动多个服务?描述: 在Gin的生产环境中通常会自定义HTT
近期接手一个IM项目
原创 2015-12-12 20:19:46
564阅读
并行:因为是在多个cpu上(比如有10个cpu),比如有10个线程,每个线程执行10毫秒(各自在不同cpu上执行),从人的角度看位。
原创 2023-10-03 09:30:24
133阅读
背景系统开发部分需求涉及到了多任务执行,而多任务执行过程中需要处理并发问题,都知道Golang本身是支持高并发的,其实很多语言都支持并发,像Java也可以创建多个线程(Thread),但是为什么要强调Golang支持高并发呢?那是因为Golang并发执行100w个协程。(coroutine)也不会觉得特别吃力,但是Java并发执行1w个线程(Thread)其性能下降就显而易见了,因此支持高并发也是
转载 2023-08-18 18:18:51
90阅读
今天我们一起盘点一下Golang并发那些事儿。 GolangGolangGolang 真的够浪,今天我们一起盘点一下Golang并发那些事儿,准确来说是goroutine,关于多线程并发,咱们暂时先放一放(主要是俺现在还不太会,不敢出来瞎搞)。关于golang优点如何,咱们也不扯那些虚的。
转载 2021-02-09 09:55:00
118阅读
  • 1
  • 2
  • 3
  • 4
  • 5