最新 最热

优雅的控制协程(goroutine)的并发数量

对golang熟悉的小伙伴都知道,在go中开启go协程是一件简单的事,只需要一个关键字”go“。

2024-01-25
2

Goroutine和Channel的概念

Golang是一门并发编程的语言,它原生支持Goroutine和Channel。Goroutine是一种轻量级的线程,可以同时运行多个函数;Channel则是用于在Goroutine之间进行通信的管道。本文将全面介绍Goroutine和Channel的概念、使用方法以...

2023-11-28
1

Go 如何处理死锁以及该语言提供哪些工具来检测或防止死锁?

并发是 Go 的核心特性,它使程序能够同时处理多个任务。它是现代编程的一个强大组件,如果使用正确,可以产生高效、高性能的应用程序。然而,并发性也带来了顺序编程中不存在的某些类型错误的可能性,其中最臭名昭著的是死锁。...

2023-11-09
1

Go并发(五):WaitGroup

对于Go的并发编程来说,主协程需要知道其他的协程何时结束。通常我们的做法是采用channel的方式来控制,这种做法很好,可以参见我的另外一个帖子(Go并发之channel篇:https://mp.weixin.qq.com/s/PIb-gGBootc6581pHhi5ew)。...

2023-10-30
1

Go语言之goroutine的调度原理

在讲goroutine的调度原理之前,有些与操作系统相关的知识,我们需要先知道,例如:

2023-10-30
1

Golang中的管道(channel) 、goroutine与channel实现并发、单向管道、select多路复用以及goroutine panic处理

管道(channel)是 Go 语言中实现并发的一种方式,它可以在多个 goroutine 之间进行通信和数据交换。管道可以看做是一个队列,通过它可以进行先进先出的数据传输,支持并发的读和写。...

2023-10-16
1

Golang中的协程(goroutine)

进程就是程序在操作系统中的一次执行过程,是系统进行资源分配和调度的基本单位,进程是一个动态概念,是程序在执行过程中分配和管理资源的基本单位,每一个进程都有一个自己的地址空间。一个进程至少有5种基本状态:初始状态,...

2023-10-16
1

Go两周入门系列-协程(goroutine)

协程是Go语言的关键特性,主要用于并发编程,协程是一种轻量级的线程,因为协程开销比较小,所以创建上万的协程也不是什么难事,下面介绍协程的基本用法。...

2023-10-05
1

Go每日一库之119:goleak(goroutine 泄漏检测)

goroutine 作为 golang 并发实现的核心组成部分,非常容易上手使用,但却很难驾驭得好。我们经常会遭遇各种形式的 goroutine 泄漏,这些泄漏的 goroutine 会一直存活直到进程终结。它们的占用的栈内存一直无法释放、关联的...

2023-09-30
1

go 互斥锁和读写互斥锁

互斥锁是一种常用的控制共享资源访问的方法,它能够保证同时只有一个goroutine可以访问共享资源。Go语言中使用sync包的Mutex类型来实现互斥锁。定义一个锁:...

2023-09-14
2