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

golang 创建DB连接池
2020-06-09 19:00 admin golangDB

使用通道__import("database/sql"_"github.com/go-sql-driver/mysql""log""time""math/rand")//连接池大小varMAX_POOL_SIZE=20vardbPollchan*sql.DBconst(user="root"pass="root"db=...
阅读全文

go语言 Redis的使用和操作
2020-06-09 19:00 admin goRedis

ReidsRedis是一个开源的、使用C语言编写的、支持网络交互的、可基于内存也可持久化的Key-Value数据库。Reids的特点*速度快,因为数据存在内存中,类似于HashMap,HashMap的优势就是查找和操作的时间复杂度都是O(1)*支持丰富数据类型,支持string,list,set,sortedset,h...
阅读全文

排序问题总结
2020-06-09 19:00 admin 总结排序

简单获取连续的数字__//传入的array必须为有序递增的//num为获取连续几个数字funcgetContinuityNumber(array[]int,numint)[][]int{ifarray==nil{returnnil//传入数据为空}lenth:=len(array)vararrays[][]intvar...
阅读全文

golang一般常用数据类型转换总结
2020-06-09 19:00 admin golang类型转换

在编程中经常会碰到一些数据类型转换问题,每次都要搜索查询好久,今天直接自己整理一下stringstring到int(Atoi)__int,err:=strconv.Atoi(string)string到int(ParseInt)//ParseInt将字符串转换为int类型//s:要转换的字符串//base:进位制(2进...
阅读全文

go Socket编程
2020-06-09 19:00 admin goSocket

TCPSocket客户端获取连接__//1.tcpAddr,err:=net.ResolveTCPAddr("tcp4",":8080")checkError(err)conn,err:=net.DialTCP("tcp",nil,tcpAddr)//2.addr:="wwww.baidu.com:80"//定义主机名...
阅读全文

go web接口
2020-06-09 19:00 admin goweb

普通接口web服务器__import("io""net/http")funchello(whttp.ResponseWriter,r*http.Request){io.WriteString(w,"Helloworld!")}funcmain(){mux:=http.NewServeMux()mux.HandleFun...
阅读全文

获取命令行参数
2020-06-09 19:00 admin 命令行参数

flag库__Go语言标准库提供了用于快迅解析命令行参数的flag包,大致的使用步骤如下:a.通过flag.String(),flag.Bool(),flag.Int()等方式来定义命令行中需要使用的参数。b.在定义完flag后,通过调用flag.Parse()来进行对命令行参数的解析。c.获取flag.String(...
阅读全文

golang继承与接口
2020-06-09 19:00 admin golang接口

继承结构体Go语言的结构体(struct)和其他语言的类(class)有同等的地位,但Go语言放弃了包括继承在内的大量面向对象特性,只保留了组合(composition)这个最基础的特性。组合甚至不能算面向对象特性,因为在C语言这样的过程式编程语言中,也有结构体,也有组合。组合只是形成复合类型的基础。__typeRec...
阅读全文

golang 高并发数据库库存同步处理
2020-06-09 19:00 admin golang并发

方法一(对数据库的读写操作加锁)一(DAO层加行锁:读写锁)__packagemainimport("sync")//1、多个读之间不存在互斥关系//2、写操作之间都是互斥的,并且写操作与读操作之间也都是互斥的typeidMutexmap[string]*sync.RWMutexvarmyIdMutexidMutexf...
阅读全文

golang 生成RSA公钥和私钥文件
2020-06-09 19:00 admin golangRSA

__import("crypto/rand""crypto/rsa""crypto/x509""encoding/pem""os")funcmain(){//rsa密钥文件产生GenRsaKey(1024)}//RSA公钥私钥产生funcGenRsaKey(bitsint)error{//生成私钥文件privateKe...
阅读全文

go 进程和线程
2020-06-09 19:00 admin go线程

进程:__并发运行:并发运行是多个任务被同时发起运行,但同一时刻这些任务只能有一个处于运行状态。这取决于cpu核心和cpu数量__并行运行:指同一时刻,可以有多个任务真正的同时运行。必要条件是多cou核心和多cpu核心的计算环境。__并发程序建议:1.控制临界区的纯度2.控制临界区的颗粒3.减少临界区中代码耗时4.避免...
阅读全文

go 锁的使用
2020-06-09 19:00 admin go使用

锁互斥锁__由标准库代码包sync中的Mutex结构体类型代表,sync.Mutex类型(确切地说,是*sync.Mutex类型)只有两个公开方法——Lock和Unlock。顾名思义,前者被用于锁定当前的互斥量,而后者则被用来对当前的互斥量进行解锁。__packagemainimport("sync""fmt""run...
阅读全文

golang MD5实现
2020-06-09 19:00 admin golangMD

packagemainimport("crypto/md5""fmt""io")funcmain(){str:="123456"fmt.Print(Md5one(str))fmt.Print("------------")fmt.Print(Md5two(str))}funcMd5one(strstring)(md5s...
阅读全文

go runtime包的使用
2020-06-09 19:00 admin goruntime

runtime.GOMAXPROCS函数通过runtime.GOMAXPROCS函数,应用程序何以在运行期间设置运行时系统中得P最大数量。但这会引起“StoptheWord”。所以,应在应用程序最早的调用。并且最好的设置P最大值的方法是在运行Go程序之前设置好操作程序的环境变量GOMAXPROCS,而不是在程序中调用r...
阅读全文

64行代码实现零拷贝go的TCP拆包粘包
2020-06-09 18:59 admin goTCP

64行代码实现零拷贝go的TCP拆包粘包前言这段时间想用go写一个简单IM系统,就思考了一下go语言TCP的拆包粘包。TCP的拆包粘包有一般有三种解决方案。使用定长字节实际使用中,少于固定字长的,要用字符去填充,空间使用率不够高。使用分隔符一般用文本传输的,使用分隔符,IM系统一般对性能要求高,不推荐使用文本传输。用消...
阅读全文
顶部 底部