golang
文章平均质量分 71
邓彪1022
方向错了,速度再快又有什么用。
展开
-
Golang GMP 学习笔记:当P的本地队列为空时,M先从全局队列拿G放到P的本地队列,再从其它P窃取
今天看 studygolang.com 一篇讲解 GMP 的文章时,对一个细节有疑问。线程想运行任务就得获取P,从P的本地队列获取G,P队列为空时,M也会尝试从全局队列拿一批G放到P的本地队列,或从其他P的本地队列偷一半放到自己P的本地队列。M运行G,G执行之后,M会从P获取下一个G,不断重复下去。那当P队列为空时,M是先从全局队列拿G放到P的本地队列,还是先从其它P窃取?通过查阅相关资料,发现《Go专家编程》一书也没有明确说明。里面有一句话:GO调度器提供了工作量窃取策略,即当某个处理器P转载 2022-02-24 11:06:21 · 612 阅读 · 0 评论 -
面试官:你能聊聊string和[]byte的转换吗?
前言哈喽,大家好,我是asong。为什么会有今天这篇文章呢?前天在一个群里看到了一份Go语言面试的八股文,其中有一道题就是"字符串转成byte数组,会发生内存拷贝吗?";这道题挺有意思的,本质就是在问你string和[]byte的转换原理,考验你的基本功底。今天我们就来好好的探讨一下两者之间的转换方式。byte类型我们看一下官方对byte的定义://byteisanaliasforuint8andisequivalenttouint8inallways.I...转载 2021-12-29 10:18:56 · 287 阅读 · 0 评论 -
用数据说话,Go 所有字符串拼接方式里哪种才是最稳定高效的?
前言日常业务开发中离不开字符串的拼接操作,不同语言的字符串实现方式都不同,在Go语言中就提供了6种方式进行字符串拼接,那这几种拼接方式该如何选择呢?使用那个更高效呢?今天我们邀请到公众号「Golang 梦工厂」的主理人松哥就一起来分析一下。本文使用Go语言版本:1.17.1string类型我们首先来了解一下Go语言中string类型的结构定义,先来看一下官方定义://stringisthesetofallstringsof8-bitbytes,conventi...转载 2021-12-29 10:15:58 · 339 阅读 · 0 评论 -
你不知道的Golang 在json反序列化时interface{}对int64做的特殊处理
题最近在项目中遇到一个坑,Go语言在json反序列化时,如果未指定类型,则数字(比如int64)会默认是 float64,这样再次序列化的时候造成了精度丢失。具体可以看如下代码 package main import ( "fmt" jsoniter "github.com/json-iterator/go" ) func main() { s := "{\"a\":6673221165400540161}"...转载 2020-08-28 17:04:27 · 998 阅读 · 0 评论 -
go+grpc+proto实现一个聊天服务器
项目源码地址:https://github.com/DBiao/grpc-DB/使用go+grpc+proto3基于CSP并发模式实现一个聊天服务器。1,简单模式:简单模式只是使用参数和返回值作为服务器与客户端传递数据的方式,最简单。2,客户端流模式:即从客户端往服务器端发送数据使用的是流,即服务器端的参数为流类型,然而在服务器相应后返还数据给客户端,使用的也是流的send方法。一般在...原创 2020-01-14 15:25:53 · 468 阅读 · 0 评论 -
could not launch process: executables built by Go 1.11 or later need Delve built by Go 1.11 or later
go语言升级到 go 1.13.1 版本后,IntelliJ IDEA 开发 go , debug模式运行时报错could not launch process: decoding dwarf section info at offset 0x0: too short解决方法:1.go get -u github.com/derekparker/delve/cmd/dlv2....原创 2019-12-12 10:15:13 · 616 阅读 · 0 评论