Pool merupakan implementasi design pattern bernama object pool pattern. Design pattern pool dapat digunakan untuk menyimpan data. Data dapat diambil dari pool dengan menggunakan Get(). Setelah selesai menggunakan datanya, bisa disimpan kembali ke pool menggunakan Put(). Implementasi pool di Golang ini sudah aman dari problem race condition.
Contoh code
packagemainimport ("fmt""sync""time")var pool sync.Poolfuncmain() {var v int pool.Put(v) pool.Put(2) pool.Put(3) pool.Put(4) pool.Put(5) pool.Put(6) pool.Put(7) pool.Put(8) pool.Put(9) pool.Put(10)for i :=0; i <10; i++ { data := pool.Get() fmt.Printf("%d ", data) } time.Sleep(3* time.Millisecond) }