a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 編程 > Golang > 正文

Go語言中使用 buffered channel 實現線程安全的 pool

2020-04-01 19:24:24
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了Go語言中使用 buffered channel 實現線程安全的 pool,因為Go語言自帶的sync.Pool并不是很好用,所以自己實現了一線程安全的 pool,需要的朋友可以參考下
 

概述

我們已經知道 Go 語言提供了 sync.Pool,但是做的不怎么好,所以有必要自己來實現一個 pool。

給我看代碼:

 

復制代碼代碼如下:

type Pool struct {
  pool chan *Client
}

 

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

// 從 pool 里借一個 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...
  }
}

 

總結

現在不要使用 sync.Pool


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 欧美日韩不卡 | 日本欧美国产 | 欧美一级黄色片网站 | 亚洲欧美中文日韩在线v日本 | 草久网| 欧美精品在线免费观看 | 久久午夜视频 | 黄视频入口 | 色婷婷亚洲 | 狠狠躁日日躁夜夜躁影院 | sis色中色| 久久网日本 | 精品成人一区 | 久久综合一区二区 | 男女羞羞视频网站 | 天天干天天搞天天射 | 国精产品一区二区三区黑人免费看 | 国产伦精品一区二区三区四区视频 | 国产精品久久久久久av公交车 | 久久国产欧美日韩精品 | 玖玖久久 | 国产精品二区三区在线观看 | 伊人伊人 | 国产电影一区二区在线观看 | 色综合中文 | 亚州成人| 日本欧美久久久久 | 噜噜噜噜狠狠狠7777视频 | 中文字幕高清在线 | 国产精品无码永久免费888 | 91精品久久久久久综合五月天 | 一级黄色片欧美 | 欧美亚洲日本国产 | 久久九九| 欧美激情第二页 | 久久国产成人午夜av影院宅 | 逼操| 国产一二三视频 | 欧美wwwww| 一区二区不卡视频 | 青草草|