go语言
文章平均质量分 71
Q_X_Q 慶
这个作者很懒,什么都没留下…
展开
-
go 使用 sync.RWMutex
简述读写锁的使用,以及注意点。原创 2024-01-02 13:04:47 · 4487 阅读 · 0 评论 -
go 源码解读 - sync.Mutex
mutex 是 一种实现互斥的同步原语。(go-version 1.21) (还涉及到Go运行时的内部机制)原创 2023-12-27 15:19:39 · 14184 阅读 · 3 评论 -
go 使用 - sync.Metux
简述使用metux使用的方法, 使用的注意点, 已经使用情况。原创 2023-12-27 16:02:26 · 5166 阅读 · 0 评论 -
go 源码解读 sync.RWMutex
简述sync包中读写锁的源码。读写锁(RWMutex)是一种并发控制机制,用于在多个 goroutine 之间对共享资源进行读写操作。它提供了两种锁定方式:读锁和写锁。读锁(RLock):多个 goroutine 可以同时持有读锁,而不会阻塞彼此。只有当没有写锁被持有时,读锁才会被授予。这样可以实现多个 goroutine 并发地读取共享资源,提高程序性能。写锁(Lock):写锁是排它的,当某个 goroutine 持有写锁时,其他所有 goroutine 都无法获得读锁或写锁。原创 2023-12-28 17:01:28 · 9926 阅读 · 1 评论 -
go 使用 - sync.WaitGroup
waitgroup 是等待一组并发操作完成得方法。Goroutines对Go来说是独一无二的(尽管其他一些语言有类似的并发原语)。它们不是操作系统线程,它们不完全是绿色的线程(由语言运行时管理的线程),它们是更高级别的抽象,被称为协程(coroutines)。协程是非抢占的并发子程序,也就是说,它们不能被中断。原创 2023-12-27 11:03:49 · 815 阅读 · 0 评论 -
go xorm 存库处理null值
Go 的结构体不直接支持整数类型的 NULL 值。整数类型(如 int、int64 等)是非指针类型,不能直接存储 NULL 值。然而,你可以使用指针类型来模拟整数类型的 NULL 值。通过将整数字段定义为指针类型,可以将其设置为指向整数值或者为 nil(NULL)。go 的结构有默认值, 这样从数据库获取的时候, null 值会被解析成 0 , 而0 在系统是一个有效值。指针可以读到 数据库的null 值, json 解析的时候 也能 转成null 值,。原创 2023-05-23 15:29:36 · 15123 阅读 · 0 评论 -
go源码解读-sync.pool
sync.pool 是go 内置的对象池技术, 管理临时对象,这些对象可以单独保存和检索, 减少GC次数特点:1、 池不可以指定大小2、 Get 没有的话会新生成一个对象3、对象的周期取决于GC的周期从go doc可以看到sync.pool 主要暴露Get 和 Put 两个方法, 以及一个New。:用New初始化pool一个实例,获取的调用Get , 释放资源的时候调用Put使用实例:gin 中使用。原创 2023-04-26 15:59:08 · 587 阅读 · 0 评论 -
翻译tools
在做一个区域组件的国际化,然后做了一个小的翻译工具。这是中文的区域文件。百度翻译ap文档:https://api.fanyi.baidu.com/product/11const COUNT_NRL="http://api.fanyi.baidu.com/api/trans/vip/translate"type reqParam struct{ Q string `json:"q"` From string `json:"from"` To string `json:"to"` Appi原创 2020-10-27 15:13:11 · 651 阅读 · 0 评论 -
golang 获取当前路径
str, _ := os.Getwd()原创 2020-05-22 15:45:55 · 2674 阅读 · 0 评论 -
go 实现广播
type BroadcastService struct {// This is the channel the service will listen on…chBroadcast chan int// and forward it to these.chListeners []chan int// Requests for new listeners to be added…chNewRequests chan (chan int)// Requests for listeners to原创 2020-05-18 11:34:02 · 283 阅读 · 0 评论 -
go 类型断言
rr,ok:=mapsy.Load(did) //从sync.Map中加载数据,rr类型是interface{} if !ok{ return nil}value, ok := rr.(*Robot) //将rr转成自己需要的类型,这里是Robot(自己定义的struct)if !ok { return}...原创 2020-04-24 10:44:18 · 146 阅读 · 0 评论 -
go 计时器------time,Ticker
ticker结构,一个有计时的通道的定时器,到一个时间点就触发。// A Ticker holds a channel that delivers `ticks' of a clock// at intervals.type Ticker struct { C <-chan Time // The channel on which the ticks are delivered. ...原创 2020-04-23 17:15:32 · 308 阅读 · 0 评论 -
Goland------设置头文件注释
原创 2020-04-21 11:04:14 · 583 阅读 · 0 评论 -
go基础 ---- math
fmt.Println(math.Abs(-5)) // 取绝对值 fmt.Println(math.Floor(3.1)) // 向下取整 fmt.Println(math.Floor(3.8)) // 向上取整 // 默认没有四舍五入,可以这么实现 var num float64 = 1.2 fmt.Println(math.Floor(nu...原创 2020-04-17 16:25:44 · 177 阅读 · 0 评论 -
LeetCode解题(2)----面试题 01.07. 旋转矩阵(go)
func rotate(matrix [][]int) {//按对称轴反转for i:=0;i<len(matrix) ;i++{ for j:=0;j<len(matrix[0]);j++{ if j>i{ matrix[i][j],matrix[j][i]=matrix[j][i],matrix[i][j] ...原创 2020-04-07 18:26:41 · 186 阅读 · 0 评论 -
LeetCode解题(1)----------8 字符串转换整数[go]
func myAtoi(str string) int { //去除空格 s := strings.TrimSpace(str) if s ==""{ return 0 } templ := []byte{'0','1','2','3','4','5','6','7','8','9'} var abs string var...原创 2020-04-03 10:54:50 · 212 阅读 · 0 评论 -
go iris 上下文摘要
package contexttype Context interface { // BeginRequest 针对每一个请求都会执行 // 它应该为新的请求准备(新的或从pool获得的)上下文的字段。 // 要跟随iris的流程,开发人员应: // 1. 重置handler 为nil // 2. 重置 values 为空 // 3. 重置会话为 ...原创 2020-03-25 16:32:46 · 530 阅读 · 0 评论 -
Go下载第三方依赖被墙
设置:set GO111MODULE=onset GOPROXY=https://proxy.golang.org原创 2020-03-20 16:59:22 · 176 阅读 · 0 评论 -
读 csv 文件出现乱码
fileName := flag.String("f", "", "Application Policy CSV File") flag.Parse() if *fileName == "" { fmt.Printf("Please Assign Application Policy CSV File") return }csvreader.New().WithHeader([]s...原创 2020-03-20 16:53:09 · 624 阅读 · 0 评论 -
Go----time.Now().Format("2006-01-02 15:04:05)
使用time.Now().Format("2006-01-02 15:04:05),对时间进行格式化输出。那2006-01-02 15:04:05 这个时间可以不可以改其他的呢?java中关于时间格式化,一般是用 Date date = new Date(); String str = "yyy-MM-dd HH:mm:ss"; SimpleDateFormat sdf = new Si...原创 2020-03-01 13:47:29 · 3255 阅读 · 0 评论 -
GO---map的基本使用
var goMap map[string]string //定义goMap为map类型goMap = make(map[string]string) //初始化//key不存在为增加,key存在为修改goMap["a"] = "apple" //加值goMap["b"] = "branana" //...原创 2020-03-01 13:20:32 · 284 阅读 · 0 评论 -
Golang--time.After
1、源码就是说:在等待给定的一段时间后,向返回值发送当前时间,返回值是一个单向只读通道。2、这边可以先打印了当前时间,等待5秒后打印3、当C通道不阻塞的情况下,正常打印4、循环了3次,分别打印的结果。整个程序一共花了10s,是设置的timeout,期间第二次循环也用到了超时,并不计算在整个流程中。是算在select的流程内的。...原创 2020-01-08 17:01:07 · 410 阅读 · 0 评论 -
Golang---server代理实现重定向
需要实现中间代理进行重定向,并且将加载出来后的html修改base中的href,使得可以成功加载其他需要的js、css…等文件。先放源码:func main() { go func() { s := new(server) http.Handle("/dev/", &server{}) http.Handle("/dev", &server{}) http...原创 2020-01-07 11:04:12 · 614 阅读 · 0 评论 -
Golang---Httpserver---获取RequestUrl的方法
1、获取请求URL: request.getRequestUrl()2、获取请求协议:request.getScheme()3、获取服务器名称:request.getServerName()4、获取服务器端口号:request.getServerPort()5、获取项目名称:request.getContextPath()6、获取项目服务:request.getServletPath...原创 2020-01-02 15:00:24 · 3030 阅读 · 0 评论 -
Golang---路由重定向
实习了快一个月了,这期间在学企业文化、产品、GO、网络的内容。放假前,领导给了一个任务,做一个代理,用来重定向client的请求路由。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200102140655965.png) 如图,就是将所有的请求路由都将dev去掉,然后重定向真实servertype server struct {}func (s...原创 2020-01-02 14:15:11 · 1255 阅读 · 0 评论 -
golang-----sync
1、互斥锁 MutexMutex 为互斥锁,Lock() 加锁,Unlock() 解锁 ,在这两个方法之间的代码不能被多个goroutins同时调用到。在一个 goroutine 获得 Mutex 后,其他 goroutine 只能等到这个 goroutine 释放该 Mutex使用 Lock() 加锁后,不能再继续对其加锁,直到利用 Unlock() 解锁后才能再加锁在 Lock() 之...原创 2019-12-14 10:33:02 · 161 阅读 · 0 评论 -
Golang----第二章Go概述
2.1 什么是程序程序:就是完成某个指令的集合2.2 Why is Go语言Go语言是Google公司创造的语言。2.3 go语言诞生的小故事现有的编程语言:1.风格不统一2.计算能力不够3.处理大并发不够好2.4 Go语言的特点Go语言保证了既能达到静态编译语言的安全和性能,又达到了动态语言开发维护的高效率,使用一个表达式来形容Go语言,Go=c+Python,说明语言既有C...原创 2019-11-25 10:50:48 · 144 阅读 · 0 评论 -
Golang----第一章golang开山篇
1.1Golang学习方向Go服务器=>数据处理,处理大并发。1.2 Golang的应用领域:1.2.1 区块链应用 区块链技术,简称BT,也被称之为分布式账本技术,是一种互联网数据库技术,其特点是去中心化、公开透明。1.2.2 后端服务器应用美团后台流量(排序、推荐、搜索等)支撑程序,提供负载均衡、cache、容错、按条件分流,统称运行指标(qps)仙侠道1.2.3 云计...原创 2019-11-25 09:13:10 · 120 阅读 · 0 评论 -
GoLand 运行报错-CreateProcess error=216, 该版本的 %1 与你运行的 Windows 版本不兼容
Cannot run program “…” (in directory “D:\project\go\awesomeProject\src\test”): CreateProcess error=216, 该版本的 %1 与你运行的 Windows 版本不兼容。请查看计算机的系统信息,然后联系软件发布者将入口文件改成 如下即可。...原创 2019-11-16 12:43:16 · 1752 阅读 · 0 评论 -
go语言环境安装
一、GO语言环境安装Go 语言支持以下系统:LinuxFreeBSDMac OS X(也称为 Darwin)Windows安装包下载地址为:https://golang.org/dl/。如果打不开可以使用这个地址:https://golang.google.cn/dl/。下载完成后进行安装(在下载列表中可以找到该文件,如go1.4.2.windows-amd64.msi的安装包来安...原创 2019-11-07 14:57:38 · 103 阅读 · 0 评论 -
开个---我要入坑go语言了
昨天面试了一家公司,做网络通讯的,用go语言开发的。我回去偷偷的看了下go语言的前景,卑微大四狗的我准备入坑了,先吼一声。原创 2019-11-07 09:56:12 · 117 阅读 · 0 评论