31 lines
398 B
Go
Raw Normal View History

2020-04-24 18:09:58 +08:00
package objectpool
import (
2020-05-05 22:59:18 +08:00
"fmt"
2020-04-24 18:09:58 +08:00
"testing"
)
func TestObjectPool(t *testing.T) {
2020-05-05 22:59:18 +08:00
p := newPool(3)
doc1 := <-p
doc1.surgery("tom")
doc2 := <-p
doc2.surgery("rose")
doc3 := <-p
doc3.surgery("kate")
2020-04-24 18:09:58 +08:00
select {
case obj := <-p:
2020-05-05 22:59:18 +08:00
obj.surgery("lily")
2020-04-24 18:09:58 +08:00
p <- obj
default:
// No more objects left — retry later or fail
2020-05-05 22:59:18 +08:00
fmt.Println("No more objects left, this moment")
2020-04-24 18:09:58 +08:00
return
}
}