golang
文章平均质量分 72
谱写
生活不是等待风暴过去,而是学会在雨中翩翩起舞~
兴
展开
-
Golang Map、List、slice切片操作
golang List Map slice操作原创 2023-02-24 15:58:26 · 1184 阅读 · 1 评论 -
关于gorm多表联合查询(left join)
关于gorm多表联合查询原创 2022-11-28 14:50:45 · 4608 阅读 · 1 评论 -
golang解析复杂json格式
golang解析复杂json格式原创 2022-07-06 16:01:36 · 837 阅读 · 0 评论 -
golang ui生成二维码显示
golang ui 生成二维码图片原创 2022-06-01 17:16:10 · 349 阅读 · 0 评论 -
go动态限制并发数量
因为go从语言层面支持并发,所以面试百分百会问到并发的问题,比如说控制go并发数量的方式有哪些?GO实现控制最多有10个并发线程带有缓冲大小的通道package mainimport ( "fmt" "sync")func main() { count := 10 // 最大支持并发 sum := 100 // 任务总数 wg := sync.WaitGroup{} //控制主协程等待所有子协程执行完之后再退出。 c := make(chan struct{}, cou原创 2022-05-10 09:20:02 · 2041 阅读 · 0 评论 -
Golang同步和异步执行
同步适合多个连续执行的,每一步的执行依赖于上一步操作,异步执行则和任务执行顺序无关(如从10个站点抓取数据)同步执行类RunnerAsync支持返回超时检测,系统中断检测错误常量定义,task/err.gopackage task import "errors" //超时错误var ErrTimeout = errors.New("received timeout") //操作系统系统中断错误var ErrInterrupt = errors.New("received原创 2022-03-31 09:30:31 · 4201 阅读 · 1 评论 -
golang 交叉编译C++ dll配置文件
调用c++ 报%1 is not a valid Win32 application开发环境:win64位C++ dll 为32位首先遇到的坑就是环境的配置,调用了一个之前C++写的dll,一直报错:%1 is not a valid Win32 application.就怀疑是否是dll出了问题,使用C++调用,正常运行,排除dll的问题,然后怀疑是否是golang调用方法问题,这里简要说一下golang调用dll的三种方法,使用了C语言编写了一个最基本的dll,只包含hell原创 2022-03-08 11:24:13 · 883 阅读 · 0 评论 -
Golang 并发之锁
Golang sync包提供了基础的异步操作方法,包括互斥锁Mutex,执行一次Once和并发等待组WaitGroup。本文主要介绍sync包提供的这些功能的基本使用方法。Mutex: 互斥锁 RWMutex:读写锁 WaitGroup:并发等待组 Once:执行一次 Cond:信号量 Pool:临时对象池 Map:自带锁的map二. sync.Mutexsync.Mutex称为互斥锁,常用在并发编程里面。协程是一种用户态的轻量级线程。(所以我们可以用线程的思想去理解)互斥锁的原创 2021-10-16 10:48:37 · 917 阅读 · 0 评论 -
Golang并发模型之
控制并发有三种种经典的方式,一种是通过channel通知实现并发控制 一种是WaitGroup,另外一种就是Context。1. 使用最基本通过channel通知实现并发控制无缓冲通道无缓冲的通道指的是通道的大小为0,也就是说,这种类型的通道在接收前没有能力保存任何值,它要求发送 goroutine 和接收 goroutine 同时准备好,才可以完成发送和接收操作。从上面无缓冲的通道定义来看,发送 goroutine 和接收 gouroutine 必须是同步的,同时准备后,如果没有同时准.原创 2021-10-16 09:44:01 · 118 阅读 · 0 评论 -
当Golang遇到高并发秒杀
遇到go也是工作上的调整,工作上做架构相关的事情,对新发展比较火爆的语言肯定要关注下。就这样步入了GO语言的世界,GO给我带来了全新的体验;一直做一件事情的人往往会被一件事情所困,开始实践GO语言的时候总感觉哪哪都别扭,特别是把结构体当成类,还有结构体的继承,写面向对想多了开始还真扭不过来。不过写的多了渐渐地也习惯了,甚至感觉越来越顺眼。在熟悉了GO一段时间后,也停止了一会,脑子里一直在想着GO的简洁(代码风格一致,用起来简练不拖泥带水,部署极其简单,编译速度用快来形容),能给项目系统和架构带来哪些原创 2021-10-16 09:36:49 · 959 阅读 · 0 评论 -
Go并发详解之一
多核处理器越来越普及。有没有一种简单的办法,能够让我们写的软件释放多核的威力?是有的。随着Golang, Erlang, Scala等为并发设计的程序语言的兴起,新的并发模式逐渐清晰。正如过程式编程和面向对象一样,一个好的编程模式有一个极其简洁的内核,还有在此之上丰富的外延。可以解决现实世界中各种各样的问题。本文以GO语言为例,解释其中内核、外延。并发模式之内核这种并发模式的内核只需要协程和通道就够了。协程负责执行代码,通道负责在协程之间传递事件。不久前,并发编程是个非常困难的事。要...原创 2021-10-15 15:59:45 · 257 阅读 · 0 评论 -
Go语言系列之日志库zap
在许多Go语言项目中,我们需要一个好的日志记录器能够提供下面这些功能:能够将事件记录到文件中,而不是应用程序控制台。 日志切割-能够根据文件大小、时间或间隔等来切割日志文件。 支持不同的日志级别。例如INFO,DEBUG,ERROR等。 能够打印基本信息,如调用文件/函数名和行号,日志时间等。Go自带log库的优势和劣势 优势 它最大的优点是使用非常简单。我们可以设置任何io.Writer作为日志记录输出并向其发送要写入的日志。 劣势 仅限基本的日志级别 只有一个Prin原创 2021-09-10 16:40:43 · 728 阅读 · 0 评论