当前分类: Golang 基础语法

go WaitGroup 的使用方法

go WaitGroup 的使用方法

2023-03-23 106 143
在 Go 中,sync 包下的 WaitGroup 能有助于我们控制协程之间的同步。当需要等待一组协程都执行完各自任务后,才能继续后续逻辑。这种场景,就非常适合使用它。WaitGroup 提供三个 API。Add(delta int) 函数提供了 WaitGroup 的任务计数,delta 的值可以为正也可以为负,通常在添加任务时使用。Done() 函数其实就是 Add(-1),在任务完成时调用。
Go 中 实现基于 channel 的简单 生产者 消费者模型

Go 中 实现基于 channel 的简单 生产者 消费者模型

2023-03-23 97 130
Go 中 实现基于 channel 的简单 生产者 消费者模型packagemain import( "fmt" "strconv" "sync" ) //生产者 funcproducer(chchan<-string,wg*sync.WaitGroup){ deferwg.Done() fo
go 协程管理及传参处理

go 协程管理及传参处理

2022-10-18 805 1086
Go语言中的goroutine虽然相对于系统线程来说比较轻量级(初始栈大小仅2KB),(并且支持动态扩容),而正常采用java,c++等语言启用的线程一般都是内核态的占用的内存资源一般在4m左右,而假设我们的服务器CPU内存为4G,那么很明显才用的内核态线程的并发总数量也就是1024个,相反查看一下Go语言的协程则可以达到4*1024*1024/2=200w.这么一看就明白了为什么Go语言天生支持
go 封装 try 函数 go错误处理

go 封装 try 函数 go错误处理

2022-10-12 267 360
go 封装 try 函数 go错误处理
go 自定义错误类型

go 自定义错误类型

2022-10-11 222 299
go 自定义错误类型
go 实现php的 password_hash() 密码加密方法

go 实现php的 password_hash() 密码加密方法

2022-09-22 479 646
go 实现php的 password_hash() 密码加密方法
Go生成的动画GIF在Windows中打不开的问题

Go生成的动画GIF在Windows中打不开的问题

2022-07-21 543 733
Go语言标准库中图像包的使用,并使用这些图像包来创建一系列的位图图像,然后将位图序列编码为 GIF 动画。//Copyright©2016AlanA.A.Donovan&BrianW.Kernighan. //License:https://creativecommons.org/licenses/by-nc-sa/4.0/ //Runwith"web"comm
go sync 包 WaitGroup 的使用

go sync 包 WaitGroup 的使用

2022-06-09 429 579
sync包提供了基本的同步基元,如互斥锁。除了Once和WaitGroup类型,大部分都是适用于低水平程序线程,高水平的同步使用channel通信更好一些。packagemain import( "fmt" "sync" ) funcmain(){ varwgsync.WaitGroup items:=[]int{1,2,3,4
go  定时任务timer和定时间隔任务ticker的使用

go 定时任务timer和定时间隔任务ticker的使用

2022-06-04 610 823
go 定时任务timer和定时间隔任务ticker的使用Timer类型代表单次时间事件。当Timer到期时,当时的时间会被发送给CTicker类型代表多次时间事件。funcmain(){ log.Println(time.Now()) t2:=time.NewTimer(time.Millisecond*3000) <-t2.C log.Println(time.Now())
Go 切片面试真题八连问

Go 切片面试真题八连问

2022-05-25 526 710
原文:https://mp.weixin.qq.com/s/Qo_DNAAcamXXwU9ihrY6jA前言哈喽,大家好,我是asong。最近没事在看八股文,总结了几道常考的切片八股文,以问答的方式总结出来,希望对正在面试的你们有用~本文题目不全,关于切片的面试真题还有哪些?欢迎评论区补充~01. 数组和切片有什么区别?Go语言中数组是固定长度的,不能动态扩容,在编译期就会确定大小,声明方式如下: