panjf2000 / ants

🐜🐜🐜 ants is the most powerful and reliable pooling solution for Go.
https://ants.andypan.me/
MIT License
12.83k stars 1.36k forks source link

[Question]: 关于协程池的任务队列问题 #340

Closed baichangda closed 1 month ago

baichangda commented 1 month ago

Questions with details

根据流程图发现ants并未存在任务队列缓冲区 如果所有的池中所有的协程都处于工作状态、会阻塞添加任务操作 在这种情况下、像一般java的线程池都设计了任务队列作为任务的缓冲区 是否可以考虑添加一个任务池队列、性能可能有所提升

Code snippets (optional)

No response

panjf2000 commented 1 month ago

338

加一个"缓冲区"在业务层可能有意义,但是对 ants 这样一个基础库来说没有意义,因为 Pool 大小本身就已经是一个"缓冲区"了,你要是担心会阻塞的话,要么把 pool size 设置大一点,或者设置 WithNonblocking