网站首页 成长录 “慢生活”不是懒惰,放慢速度不是拖延时间,而是让我们在生活中寻找到平衡。

go标准库中unicode/utf8包
2020-06-09 18:52 admin go库中

__//编码所需的基本数字const(RuneError='\uFFFD'//错误的Rune或Unicode代理字符RuneSelf=0x80//ASCII字符范围MaxRune='\U0010FFFF'//Unicode码点的最大值UTFMax=4//一个字符编码的最大长度)//将r转换为UTF-编码写入p中(p必须...
阅读全文

go标准库中sync包
2020-06-09 18:52 admin go库中

sync包有以下几个内容:(1)sync.Pool临时对象池(2)sync.Mutex互斥锁(3)sync.RWMutex读写互斥锁(4)sync.WaitGroup组等待(5)sync.Cond条件等待(6)sync.Once单次执行一、临时对象池---2019年11月8日20:05更新1、Pool是用于存储那些被分...
阅读全文

go defer性能测试
2020-06-09 18:52 admin godefer

在学习中了解到defer相比没有使用defer会消耗部分时间,所以测试了下,使用与不使用defer的性能测试,通过实验,defer影响程序的速度基本可以忽略不计。__packagemainimport("time""fmt")funcmain(){t1:=time.Now()fori:=0;i<1000000;i++{...
阅读全文

go标准库中unsafe包
2020-06-09 18:52 admin go库中

go语言的指针类型分为三种:(1)普通指针类型:*类型,用于存储地址,不能进行指针运算(2)通用指针类型:用于转换不同类型的指针,不能进行指针运算(3)uintptr:用于指针运算,GC不把uintptr当指针,uintptr无法持有对象。uintptr对象会被回收。unsafe.Pointer可以和普通指针进行转换。...
阅读全文

Golang并发模型:轻松入门流水线FAN模式
2020-06-09 18:52 admin golangFAN

前一篇文章,介绍了流水线模型的概念,这篇文章是流水线模型进阶,介绍FAN-IN和FAN-OUT,FAN模式可以让我们的流水线模型更好的利用Golang并发,提高软件性能。但FAN模式不一定是万能,不见得能提高程序的性能,甚至还不如普通的流水线。我们先介绍下FAN模式,再看看它怎么提升性能的,它是不是万能的。FAN-IN...
阅读全文

golang中archive/tar包详解
2020-06-09 18:51 admin golangarchive

go语言官方标准库提供tar库,以方便对tar的操作一、了解tar什么是tar?tar是一种打包格式,但不对文件进行压缩,所以打包后的文档一般远远大于zip和tar.gz,因为不需要压缩的原因,所以打包的速度是非常快的,打包时CPU占用率也很低。tar的目的是什么?方便文件的管理(帮助理解:就是你存在很多文件的时候,但...
阅读全文

golang中archive/zip包
2020-06-09 18:51 admin golangarchive

一、ZIP的操作压缩、解压二、GO中压缩操作1、创建zip文件2、向这个zip文件里写入要压缩的文件的头部信息和文件信息__packagemainimport("os""log""archive/zip""io""fmt")funcmain(){err:=Zip("demo.zip",[]string{})iferr!...
阅读全文

GO基础深入总结
2020-06-09 18:51 admin go总结

GO的关键字:包管理:package、import变量:var、map、struct、interface、const、type函数:func、return、defer循环:if、else、switch、case、fallthought、default、for、break、continue、goto、range并发:go...
阅读全文

go实例演示nsq消息队列的使用
2020-06-09 18:51 admin gonsq

使用场景我这儿用一个实例来说明nsq的使用,假设我有一个apiServer的程序,它负责面向用户。有一个dataServer的程序,负责处理数据。apiServer这个进程对用户的请求进行简单的处理,复杂的资源处理则去请求dataSever,让dataServer来处理。dataServer部署在多台主机,apiSer...
阅读全文

golang post模拟客户端多文件上传以及处理
2020-06-09 18:51 admin golangpost

为了模拟客户端和服务器端,我这儿开了两个进程,进程A(监听地址:http://192.168.50.250:8080路由/objects)进程B(监听地址:http://192.168.50.250:8081路由:/objetcs)方法都是post。进程A是监听客户上传的文件,然后模拟httpclien上传给进程B。在...
阅读全文

轻松检测Golang并发的数据竞争
2020-06-09 18:51 admin golang并发

Golang中我们使用Channel或者sync.Mutex等锁保护数据,有没有一种机制可以检测代码中的数据竞争呢?>背景知识>>数据竞争是并发情况下,存在多线程/协程读写相同数据的情况,必须存在至少一方写。另外,全是读的情况下是不存在数据竞争的。使用race检测数据竞争`gobuild`有个标记`race`可以帮助检...
阅读全文

golang 操作etcd租约以及监听kv变化
2020-06-09 18:51 admin golangetcd

定义错误常量:__const(NewLeaseErr=101LeasTtlErr=102KeepAliveErr=103PutErr=104GetErr=105RevokeErr=106)创建client:__varconf=clientv3.Config{Endpoints:[]string{"172.16.196....
阅读全文

golang实现子进程通信
2020-06-09 18:51 admin golang通信

这里用ping进程为例,在main函数中创建ping程序,然后将ping的执行结果通过管道(pipe)传递给主程序.主程序读取结果,然后打印,最后通过主程序发送系统信号(syscall.Signal)来结束ping.__cmd1:=exec.Command("ping","www.baidu.com")//创建子进程p...
阅读全文

mac golang 环境搭建
2020-06-09 18:51 admin golangMac

**一、mac前端安装****1、Homebrew**Homebrew是mac的包管理工具。Homebrew安装之前必须先安装Xcodecommandlinetools(用xcode-select--install进行安装)安装在此之前,必须保证Xcodecommandlinetools(**用xcode-select...
阅读全文

go知名第三方包ssdb
2020-06-09 18:51 admin gossdb

因为beego中cache模块中使用了ssdb,所以准备学习下ssdb(1)ssdb简介(2)ssdb的基本操作(3)gossdb怎么使用?1、ssdb简介SSDB是一个C/C++语言开发的高性能NoSQL数据库,支持KV,list,map(hash),zset(sortedset),qlist(队列)等数据结构,用来...
阅读全文
顶部 底部