之前的一篇笔记曾分析过,Go的map在底层是用hashmap实现的。由于高效的hash函数肯定不是对key做顺序散列的,所以,与其它语言实现的hashmap类似,在使用Go语言map过程中,key-value的插入顺序与遍历map时key的访问顺序是不相同的。熟悉hashmap的同学对这个情况应该非常清楚。
所以,本文要提到的肯定不是这个,而是一个比较让人惊奇的情况,下面开始说明。
1. 通过...
分类:
其他好文 时间:
2015-03-31 16:11:21
阅读次数:
494
package?main
import?(
"fmt"
"math/rand"
"time"
)
func?main()?{
fmt.Println("start")
chn?:=?make(chan?int,?5)
rand.Seed(time.Now().UnixNano())
for?i?:=?0;?i?<?5;?i++?{
x?...
分类:
其他好文 时间:
2015-03-31 11:01:51
阅读次数:
248
一、前言 近期本人有工作调动,进入了一个全新的领域[golang]服务端开发。在此写下本文,希望给那些没接触过golang开发调试环境及还在犹豫选择那家golang IDE而纠结的朋友们一点点帮助,如果你从中得到了受益并且同时拥有博客园账户的话,衷心希望能得到你的一个小小[推荐]以资鼓励。本人操作....
本用例在GO 1.4.2 上编译执行通过,直接上CODE: package?main
import?(
????"fmt"
????"syscall"
????"time"
????"unsafe"
)
const?(
????MB_OK????????????????=?0x0...
这次用中文写,表达得清晰些。最近 看了几个程序,结合自己的思考,给出golang 服务其 优雅停机的处理方式。这里以http服务器为对象描述。这里的"优雅",表示服务器有计划,按部就班的退出。具体表现在,友好地终止与客户端的连接;关闭其他活动的进程,线程,协成;完成资源的释放;完整的log。1. 分...
分类:
其他好文 时间:
2015-03-27 23:30:21
阅读次数:
377
最近项目需要一个REST API应用网关,因此用GO写了一个,并简单地实现了加权轮循算法。
基本思路是初始化时生成一个队列,在每次请求到来,选取backend时,直接从队列里选取,不用实时计算。...
Let's make some fun to simulation Server - Client.1. socketI implement a echo server and use telnet to simulate the socket client.in this way, we don'...
分类:
Web程序 时间:
2015-03-21 15:25:51
阅读次数:
149
有些函数执行前后,需要加日志、记录耗时、还要处理panic,都是些重复性的东西。
所以弄了个模板式的东西,碰到这类需求,直接把相关函数和参数,丢到run函数去就不用管了,省得浪费时间。...
分类:
其他好文 时间:
2015-03-19 14:51:00
阅读次数:
135
从第一天开始学习Golang就知道它有一个很让人心动的特性就是跨平台编译,但一直没有去使用。最近做了一个小东西需要用到这个特性,所以在网上进行了搜索。首先找到是国内文章是利用下载Go的源码包,将对其进行编译安装,完成后Go/src下的make.bash生成跨平台的编译器,这样在每次用时需要指定GOO...
分类:
其他好文 时间:
2015-03-19 10:05:32
阅读次数:
7483
二叉堆提供了o(lgn) 时间的插入, 删除最小,降级等操作,o(n) 时间的合并操作; ?斐波那契堆提供了更优操作时间界限:o(1) 插入, o(lgn) 删除最小, o(lgn) 删除, o(1)合并。 根据算法导论上说,斐波那契堆在删...
分类:
其他好文 时间:
2015-03-18 18:43:12
阅读次数:
145