最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Go語言中使用 buffered channel 實(shí)現(xiàn)線程安全的 pool

 更新時(shí)間:2014年10月29日 11:02:31   投稿:junjie  
這篇文章主要介紹了Go語言中使用 buffered channel 實(shí)現(xiàn)線程安全的 pool,因?yàn)镚o語言自帶的sync.Pool并不是很好用,所以自己實(shí)現(xiàn)了一線程安全的 pool,需要的朋友可以參考下

概述

我們已經(jīng)知道 Go 語言提供了 sync.Pool,但是做的不怎么好,所以有必要自己來實(shí)現(xiàn)一個(gè) pool。

給我看代碼:

復(fù)制代碼 代碼如下:

type Pool struct {
  pool chan *Client
}

// 創(chuàng)建一個(gè)新的 pool
func NewPool(max int) *Pool {
  return &Pool{
    pool: make(chan *Client, max),
  }
}

// 從 pool 里借一個(gè) Client
func (p *Pool) Borrow() *Client {
  var cl *Client
  select {
  case cl = <-p.pool:
  default:
    cl = newClient()
  }
  return cl
}

// 還回去
func (p *Pool) Return(cl *Client) {
  select {
  case p.pool <- cl:
  default:
    // let it go, let it go...
  }
}

總結(jié)

現(xiàn)在不要使用 sync.Pool

相關(guān)文章

  • 基于go微服務(wù)效率工具goctl深度解析

    基于go微服務(wù)效率工具goctl深度解析

    這篇文章主要為大家介紹了基于go微服務(wù)效率工具goctl深度解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • Golang?使用os?庫(kù)的?ReadFile()?讀文件最佳實(shí)踐

    Golang?使用os?庫(kù)的?ReadFile()?讀文件最佳實(shí)踐

    這篇文章主要介紹了Golang使用os庫(kù)的ReadFile()讀文件最佳實(shí)踐,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-09-09
  • Go單例模式與Once源碼實(shí)現(xiàn)

    Go單例模式與Once源碼實(shí)現(xiàn)

    這篇文章主要介紹了Go單例模式與Once源碼實(shí)現(xiàn),本文結(jié)合示例代碼給大家講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-12-12
  • golang的串行處理和并行處理區(qū)別

    golang的串行處理和并行處理區(qū)別

    golang對(duì)比其它語言最大的優(yōu)勢(shì)就是并行計(jì)算(一個(gè)go就能實(shí)現(xiàn)并發(fā)),工作中經(jīng)常遇到并發(fā)的場(chǎng)景, 本文主要介紹了golang的串行處理和并行處理,感興趣的可以了解一下
    2021-07-07
  • Go語言七篇入門教程一簡(jiǎn)介初識(shí)

    Go語言七篇入門教程一簡(jiǎn)介初識(shí)

    本篇是Go語言七篇入門系列第一篇Go語言初識(shí)及簡(jiǎn)單介紹,從現(xiàn)在開始一起打開Go語言的學(xué)習(xí)大門吧,希望能夠有所幫助,祝大家多多進(jìn)步
    2021-11-11
  • Go語言中strings.HasPrefix、strings.Split、strings.SplitN()?函數(shù)

    Go語言中strings.HasPrefix、strings.Split、strings.SplitN()?函數(shù)

    本文主要介紹了Go語言中strings.HasPrefix、strings.Split、strings.SplitN()函數(shù),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-08-08
  • 詳解Go如何優(yōu)雅的對(duì)時(shí)間進(jìn)行格式化

    詳解Go如何優(yōu)雅的對(duì)時(shí)間進(jìn)行格式化

    這篇文章主要為大家詳細(xì)介紹了Go語言中是如何優(yōu)雅的對(duì)時(shí)間進(jìn)行格式化的,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起了解一下
    2023-06-06
  • 深入理解go slice結(jié)構(gòu)

    深入理解go slice結(jié)構(gòu)

    這篇文章主要介紹了go slice結(jié)構(gòu),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2021-09-09
  • 淺談beego默認(rèn)處理靜態(tài)文件性能低下的問題

    淺談beego默認(rèn)處理靜態(tài)文件性能低下的問題

    下面小編就為大家?guī)硪黄獪\談beego默認(rèn)處理靜態(tài)文件性能低下的問題。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-06-06
  • Golang實(shí)現(xiàn)HTTP編程請(qǐng)求和響應(yīng)

    Golang實(shí)現(xiàn)HTTP編程請(qǐng)求和響應(yīng)

    本文主要介紹了Golang實(shí)現(xiàn)HTTP編程請(qǐng)求和響應(yīng),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08

最新評(píng)論

鄯善县| 友谊县| 星座| 西藏| 海淀区| 含山县| 鹤山市| 达拉特旗| 沁阳市| 紫金县| 南部县| 绥宁县| 南陵县| 台南市| 红桥区| 通渭县| 文水县| 腾冲县| 凤台县| 洛浦县| 绥宁县| 开封市| 龙陵县| 克拉玛依市| 宣威市| 红安县| 龙里县| 岢岚县| 托克逊县| 嘉定区| 余江县| 淮滨县| 揭西县| 叙永县| 鄂托克旗| 杨浦区| 米脂县| 察哈| 长子县| 宝山区| 任丘市|