隨手記——Go (Golang)

來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。

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

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下面的檔案全部刪除

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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.