【发布时间】:2012-09-04 15:50:20
【问题描述】:
如果我们要实现一个资源池比如数据库连接池。您将使用哪个并发集合? BlockingQueue 或 Semaphore ?
对于BlockingQueue,就像生产者-消费者设计模式一样,生产者将所有连接放在队列中,消费者将从队列中获取下一个可用连接。
对于Semaphore,您将信号量指定为池大小,并获取许可,直到达到池大小并等待其中任何一个释放许可并将资源放回池中。
哪个更简单更容易?什么情况下只能用一种不能用另一种?
【问题讨论】:
-
您不会将请求放在 BlockingQueue 上,而是将 connections 放在 BlockingQueue 中。
-
你是对的。让我更新一下
标签: java multithreading concurrency semaphore blockingqueue