随手记——Go (Golang)

前端之家收集整理的这篇文章主要介绍了随手记——Go (Golang)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

----------------------------------------

2014-02-26


139K goroutines 支撑 68K 活跃连接, 每个连接有两个goroutine ,因为net包的write和read是阻塞的,只能是1:2。这条推特的意义在于,证明了了GOLANG的并发模型,解决了服务器端的 C10K 问题,而且是突破了 10K ,达到了 68K。

----------------------------------------

2014-05-13

Android:现实世界的购物平台

越过各种软件更新的小树叶,我们所看到的是Google辛勤栽种的一整片森林。将定位功能包括离线地图)与行为识别、文字广告和强大的即时购买联系到一起,不难看出Google正将这广告平台推向更广阔的现实世界,直接装入了人们的口袋之中。

----------------------------------------

2014-05-17

《beego失落的手册》:http://go-talks.appspot.com/github.com/beego/tutorial/zh/beego/beego.slide#1

2014-05-22

http://confreaks.com/events/gophercon2014

2014-05-23

GO语言国内小站集锦:

http://studygolang.com/topics/node22

http://bbs.go-china.org/

http://sudochina.com/

http://www.golangtc.com/

----------------------------------------

2013-05-31

golang net 库

err时没有close ??
DialTimeout
dialtimeout是不行的
因为http会有复用
方案1:
要写个结构 继承conn 然后在每次读数据时调设置超时时间
type TimeoutConn struct {
net.Conn
timeSegment time.Duration
}

func DialTimeout(netw,addr string) (net.Conn,error) {
conn,err := net.DialTimeout(netw,addr,time.Second*5)
if err != nil {
return nil,err
}

return &TimeoutConn{
Conn: conn,
timeSegment: time.Second * 5
},nil
func (c *TimecoutConn) Read(b []byte) (n int,err error) {
c.SetReadDeadline(time.Now().Add(c.timeSegment))
return c.Conn.Read(b)
func (c *TimecoutConn) Write(b []byte) (n int,51); font-family:Arial; font-size:14.399999618530273px; line-height:26px"> return c.Conn.Write(b)
}
方案2:
@七贝
我们是这样处理的。。。
func TimeoutDialer(cTimeout time.Duration,rwTimeout time.Duration) func(net,addr string) (c net.Conn,err error) {
return func(netw,error) {
conn,cTimeout)
if err != nil {
return nil,err
}
conn.SetDeadline(time.Now().Add(rwTimeout))
return conn,nil
}
}

func NewTimeoutClient(connectTimeout,readWriteTimeout time.Duration) * http.Client{
return & http.Client{
Transport: & http.Transport{
Dial: TimeoutDialer(connectTimeout,readWriteTimeout),
},
}
}
----------------------------------------

2014-06-19

1. go安装包国内地址http://www.golangtc.com/download

2. 更新了Go的版本以后,就必须把pkg下面的文件全部删除

----------------------------------------

2014-11-26

1.
Q:我的程序分成很多模块,每个模块都维护一份自己的全局私有数据,在init函数里初始化这些私有数据,通过共有函数暴露出去。
我以前用其他语言编程的时候,都是定义个类,由其他调用者实例化对象再访问成员函数
这两种编程方式,哪个更适合做个WEB开发??

A:我的程序分成很多模块,每个模块都维护一份自己的全局私有数据,在init函数里初始化这些私有数据,通过共有函数暴露出去。
我以前用其他语言编程的时候,都是定义个类,由其他调用者实例化对象再访问成员函数
这两种编程方式,哪个更适合做个WEB开发 ??

这个太赞了,如果大家对paxos感兴趣,我可以再推荐个视频

还有go的一个实现,我们之前研究过,这个项目写得非常好,etcd也是基于它实现的, https://github.com/goraft/raft

猜你在找的Go相关文章