go 协程管理及传参处理
2022-10-18
291
392
Go语言中的goroutine虽然相对于系统线程来说比较轻量级(初始栈大小仅2KB),(并且支持动态扩容),而正常采用java,c++等语言启用的线程一般都是内核态的占用的内存资源一般在4m左右,而假设我们的服务器CPU内存为4G,那么很明显才用的内核态线程的并发总数量也就是1024个,相反查看一下Go语言的协程则可以达到4*1024*1024/2=200w.这么一看就明白了为什么Go语言天生支持
Go生成的动画GIF在Windows中打不开的问题
2022-07-21
355
479
Go语言标准库中图像包的使用,并使用这些图像包来创建一系列的位图图像,然后将位图序列编码为 GIF 动画。//Copyright©2016AlanA.A.Donovan&BrianW.Kernighan.
//License:https://creativecommons.org/licenses/by-nc-sa/4.0/
//Runwith"web"comm
go sync 包 WaitGroup 的使用
2022-06-09
357
481
sync包提供了基本的同步基元,如互斥锁。除了Once和WaitGroup类型,大部分都是适用于低水平程序线程,高水平的同步使用channel通信更好一些。packagemain
import(
"fmt"
"sync"
)
funcmain(){
varwgsync.WaitGroup
items:=[]int{1,2,3,4
go 定时任务timer和定时间隔任务ticker的使用
2022-06-04
457
616
go 定时任务timer和定时间隔任务ticker的使用Timer类型代表单次时间事件。当Timer到期时,当时的时间会被发送给CTicker类型代表多次时间事件。funcmain(){
log.Println(time.Now())
t2:=time.NewTimer(time.Millisecond*3000)
<-t2.C
log.Println(time.Now())
Go 切片面试真题八连问
2022-05-25
437
589
原文:https://mp.weixin.qq.com/s/Qo_DNAAcamXXwU9ihrY6jA前言哈喽,大家好,我是asong。最近没事在看八股文,总结了几道常考的切片八股文,以问答的方式总结出来,希望对正在面试的你们有用~本文题目不全,关于切片的面试真题还有哪些?欢迎评论区补充~01. 数组和切片有什么区别?Go语言中数组是固定长度的,不能动态扩容,在编译期就会确定大小,声明方式如下:
go 的基本数据类型,值类型 引用类型
2022-05-01
549
741
类型长度(字节)默认值说明bool1false一个字节,值是true或者false,不可以用0或者1表示byte10byte占用8位,一个字节,相当于uint8,不带符号位rune40Unicode Code Point, int32等价于int32类型。int, uint4或8032 或 64 位,根据平台不同是32位或者64位int8, uint810-128 ~ 127, 0 ~ 255,b
go new()和指针
2022-05-01
488
658
表达式 new(T)将创建一个 T 类型的匿名变量,初始化一个零值,且返回一个指针*T。ptr:=new(int)//p,*int类型,指向匿名的int变量
fmt.Println(*ptr)//0
fmt.Println(ptr)//0xc0000180c8
*ptr=2//设置int匿名变量的值为2
fmt.Println(*ptr)//2
fmt.Println(ptr)//0xc