随手记——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语言国内小站集锦:

/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, err error) {
    c.SetReadDeadline(time.Now().Add(c.timeSegment))
    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, addr string) (net.Conn, error) {
conn, err := net.DialTimeout(netw, addr, 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下面的文件全部删除

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

本文来自:CSDN博客

感谢作者:leonzhouwei

查看原文:随手记——Go (Golang)

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。