![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
笔记
文章平均质量分 64
中二的灰太狼
go开发者,欢迎关注,全是干货,没有废话
展开
-
gormV2笔记
去年八月份,gorm 已经升级成V2版了,做下记录批量插入要有效地插入大量记录,请将一个 slice 传递给 Create 方法。 将切片数据传递给 Create 方法,GORM 将生成一个单一的 SQL 语句来插入所有数据,并回填主键的值,钩子方法也会被调用。var users = []User{{Name: "jinzhu1"}, {Name: "jinzhu2"}, {Name: "jinzhu3"}}db.Create(&users)for _, user := range us原创 2021-12-17 00:00:36 · 1872 阅读 · 0 评论 -
golang之线程安全
阅读本文前需要对并发机制有了解只要是多线程,操作全局变量,就会有线程安全的问题,跟语言无关,同样,go也有互斥锁,读写锁这些看一个线程不安全的例子:package mainimport ( "fmt" "sync" "time")var n = 0func main() { for j := 0;j<10;j++ { go func() { for i := 0;i<10000;i++ { n++ } }() } for { time原创 2021-10-25 17:52:10 · 4762 阅读 · 0 评论 -
golang远程操作docker
本文讲述golang远程操作docker的方法,用到的库go get github.com/docker/docker/client由于本机内存不够,不得已只能远程连接docker先找到要修改的文件位置:locate docker.service修改部分如下ExecStart=/usr/bin/dockerd $DOCKER_OPTS -H unix:///var/run/docker.sock -H tcp://0.0.0.0:端口上代码:开启一个mongo容器,并在100s后删除的示例原创 2021-10-06 11:11:15 · 1303 阅读 · 0 评论 -
protobuf与grpc
protobuf是一种编解码协议,支持多种语言,比如go,python,c++,java,javascript等,效率比json更高,但是没有json那么易于理解。安装编译工具:截至到发文时间已更新至v3.18.0,下载位置:github链接然后将压缩包解压,再将bin目录设置到$PATH环境变量下即可插件此时还不支持golang,去grp-gateway按照提示安装:proto文件格式(经常变动,以github为准)syntax = "proto3";package coolcar;o原创 2021-09-29 01:35:30 · 708 阅读 · 0 评论 -
golang的chan(管道)
golang的chan翻译成中文就是管道,顾名思义,就是管道的一端用来读,另一端用来写,这与write和read函数的性质是非常相似的,比如说管道中没数据,就会发生读阻塞,管道中数据是满的,就会发生写阻塞。又类似生产者和消费者,也就是必须有生产(写),才能消费(读)chan是用来进行go程间通信的,chan的相关操作有发送、接收、关闭,注意:1. 使用chan前必须make2. 对chan的写和读操作必须同时存在,否则会死锁3. 写和读一般放在2个go程,否则容易死锁小例子:.........原创 2021-08-17 15:04:59 · 10408 阅读 · 0 评论