NTP(Network Time Protocol,网络时间协议)是由RFC 1305定义的时间同步协议,用来在分布式时间服务器和客户端之间进行时间同步。NTP基于UDP报文进行传输,使用的UDP端口号为123。
如果有使用内存存一些简单数据的功能,可以实现下面这样的带有过期时间的内存类 内存中存储key-value,并且可以设置过期时间 package tools import ( "sync" "time" ) // Memory struct contains *memcache.Client type Memory struct { sync.Mutex data map[string]*data } type data struct { Data int
二、golang 的调度 上面提及到抢占式调度会有个频繁切换的过程,在切换时,需要不断的保存或恢复上下文信息。 而这会涉及到操作系统内核态和用户态的切换,性能损耗会很大。
链表翻转 链表翻转,下面是最简单的一种链表翻转 基本上有两个方法: 递归版本 非递归版本(多指针) package main import "fmt" type Node struct { Element int Next *Node } func (n *Node) Generate(num int) { tailNode := n for i := 0; i < num; i++ { node := &Node{Element: i + 1}
Person{ {"Bob", 31, []string{"hello", "apple"}, m, list, mm}, // {"John", 42, []string{"python", "golang
golang实现urlencode函数、 urldecode函数,url加解密函数 func UrlEncode(str string) string { return url.QueryEscape
Hugo 是 Golang 编写的静态网站生成器,速度快,易用,可配置,我也是通过golang的学习,发现了Hugo,它不用依赖一大堆东西,一个二进制文件就可以搞定,简洁。
bill := &User{"bill", "bill@163.com"}
go 程(goroutine)是 go 并发的核心,它比线程要更小, 由 go Runtime 管理,运行 goroutine 只需要很少的栈空间,因此可以实现很大的并发量,在 go 中,开启一个 goroutine 只需要使用 go 关键字即可:
Golang官方 https://golang.org/ 使用命令,在本地启动一个go官网 go doc -http=:8080 访问127.0.0.1:8080 golang标准库api文档 https
(B) 55 bInfImpl.y(2) 56} golang反射三定理 把一个interface值,拆分出反射对象 反射仅仅用于检查接口值的(Value, Type)。
golang channel channel是Golang在语言层面提供的goroutine间的通信方式,比Unix管道更易用也更轻便。
注意:go1.6及之前版本请使用golang.org/x/net/context。go1.7及之后已移到标准库context。
Golang环境搭建 ——————— Windows平台应先安装 MinGW 一、Windows平台 1.下载官方提供的相应平台的安装包: https://code.google.com
使用make初始化会将切片数组初始化为对应类型空值,len和cap为make指定值,未填cap的情况cap=len,s!=nil,分配底层数组,长度、容量为0也会分配
golang枚举 普通枚举类型 直接给常量赋值 func main(){ enums() } func enums(){ const( java = 1
GoLang异常 错误处理与测试 错误处理 定义错误 用 fmt 创建错误对象 运行时异常和 panic 从 panic 中恢复(Recover) 自定义包中的错误处理和 panicking 一种用闭包处理错误的模式
看了一篇文章,里面涉及到了一些golang程序监控的问题,回过头总结了一下实现方式,简单介绍一下 expvar go自带的runtime包拥有各种功能,包括goroutine数量,设置逻辑线程数量,当前
{ r.ParseForm() //解析参数,默认是不会解析的 fmt.Println("path", r.URL.Path) w.Write([]byte("Hello Golang
socket 客户端代码 package main import ( "bufio" "fmt" "io" "net" "time" ) func main