随手记——Go (Golang)

leonzhouwei · · 3024 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

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

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, 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)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

3024 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传