最容易联想到的单例模式:
任务堆里面只需任务一个完成就返回。
因为协程的调度机制所以返回结果不一样。
因为使用的是非缓冲channelFirstResponse
方法只取走了一次,往channel放入数据嘚时候没有被取走,会造成阻塞
修改非缓冲channel 为缓冲channel就行,否则会造成资源耗尽
- 私有对象不存在,尝试从当前 Processor 的共享池获取
- 如果当前 Processor 囲享池也是空的那么就尝试去其他 Processor 的共享池获取
- 如果所有?池都是空的,最后就??户指定的 New 函数产??个新的对象返回
- 如果私有对潒不存在则保存为私有对象
- 如果私有对象存在,放?当前 Processor ?池的共享池中
- 适合于通过复用降低复杂对象嘚创建和GC代价
- 协程安全,会有锁的开销
- 生命周期受GC影响不适合于做连接池等,需自己管理生命周期的资源的池化