Golang goroutine 并发问题

  • Post author:
  • Post category:golang

此文章记录再 golang 中goroutine开发遇到的并发问题问题及其解决方案 map 在并发中的安全问题 fatal error: concurrent map read and map write 导致的原因: go内置的map不是线程安全的,如果原生map保证并发安全,那么一些不需要并发的场景,会有不小的性能损耗。 笼统的来说,go的map底层是一个hash表(HashMap),表面上看…

继续阅读 Golang goroutine 并发问题

golang 消息忽略 signal.Ignore(syscall.SIGHUP) 示例

  • Post author:
  • Post category:golang

目录 示例1: exec.Command 子进程调用 忽略消息 防止僵尸进程 示例2:管道调用中的 消息忽略 示例3:多个消息忽略 示例4:消息忽略 与 消息处理 同存 消息具体含义参考: 《golang signal 信号处理》 https://blog.csdn.net/whatday/article/details/118650161 示例1: exec.Command 子进程调用 忽略消息…

继续阅读 golang 消息忽略 signal.Ignore(syscall.SIGHUP) 示例

GoLang的逃逸分析

  • Post author:
  • Post category:golang

奇技 · 指南 今天小编为大家分享一篇关于GoLang的逃逸分析。 GoLang的垃圾回收机制可以进行自动内存管理让我们的代码更简洁,同时发生内存泄漏的可能性更小。然而,GC会定期停止并收集未使用的对象,因此还是会增加程序的开销。Go的编译器十分聪明,比如决定变量需要分配在堆上还是栈上,和分配在堆上不同的是在栈上的变量在声明它的函数结束之后就会被回收。那对于GC来说,分配在栈上的变量不会带来额外的…

继续阅读 GoLang的逃逸分析

golang时间字符串和时间戳转换

  • Post author:
  • Post category:golang

1. 获取当前时间字符串和时间戳 package main import ( "fmt" "time" ) func main() { now := time.Now().UTC() // 显示时间格式: UnixDate = "Mon Jan _2 15:04:05 MST 2006" fmt.Printf("%s\n", now.Format(time.UnixDate)) // 显示时间戳 …

继续阅读 golang时间字符串和时间戳转换

grpc中提示缺少包”google.golang.org/genproto/googleapis/rpc/status”解决办法

  • Post author:
  • Post category:golang

官方在GitHub上提供的文件在这里 https://github.com/googleapis/go-genproto 下载后放到正确的地址就行了。 版权声明:本文为sinat_26682309原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。原文链接:https://blog.csdn.net/sinat_26682309/article/details/94…

继续阅读 grpc中提示缺少包”google.golang.org/genproto/googleapis/rpc/status”解决办法

快速排序法(golang实现)

  • Post author:
  • Post category:golang

快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序 n 个项目要Ο(n log n)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他Ο(n log n) 算法更快,因为它的内部循环(inner loop)可以在大部分的架构上很有效率地被实现出来,且在大部分真实世界的数据,可以决定设计的选择,减少所需时间的二次方项之可能性。 package …

继续阅读 快速排序法(golang实现)

golang 调用第三方api 实例(返回json并解析)

  • Post author:
  • Post category:golang

解析json 并接收 package main import ( "encoding/json" "fmt" "os" ) type ConfigStruct struct { Host string `json:"host"` Port int `json:"port"` AnalyticsFile string `json:"analytics_file"` StaticFileVersion…

继续阅读 golang 调用第三方api 实例(返回json并解析)

【MAC】【Golang】The selected directory is not a valid home for Go SDK 问题解决

  • Post author:
  • Post category:golang

问题 go 1.15 升级到 1.18后,IDE配置GO SDK时,报了如下错误。 说配置的目录不是一个有效的SDK目录。 解决 前提。我是通过homebrew 进行的go的版本升级。 目录位置是 /usr/local/Cellar/go/1.18.3 (go官网的安装位置是 /usr/local/go) 关键动作 vim /usr/local/Cellar/go/1.18.3/libexec/s…

继续阅读 【MAC】【Golang】The selected directory is not a valid home for Go SDK 问题解决

Golang – 函数

  • Post author:
  • Post category:golang

文章目录 函数分类 没有参数, 没有返回值 有参数, 没有返回值 有返回值 未知参数数量 多返回值 函数的作用域 函数的进阶 参数为函数 匿名函数 闭包 闭包的练习 函数分类 没有参数, 没有返回值 // a 没有参数和返回值 func a() {} 有参数, 没有返回值 // b 参数类型不同 func b(a int, b string) {} // c 参数类型相同, 类型简写 func c…

继续阅读 Golang – 函数

Go—golang操作Redis

  • Post author:
  • Post category:golang

获取go redis第三方库 安装git ,在已安装好的终端上输入 go get github.com/gomodule/redigo/redis 会下载好第三方库到,GOPATH路径下 使用Golang链接redis package main import ( "fmt" "github.com/gomodule/redigo/redis" //引入redis包 ) func main() { …

继续阅读 Go—golang操作Redis