0

假设我有一个 servlet,它的 ondoPost方法执行一些操作。此外,我有一些网络服务池Connections(让它成为N连接),这些网络服务是从每个请求到我的 servlet 的池中获取的(每个请求 1 个连接)。在doPostservlet 的方法中,我从池中检索连接,使用它(此操作可能持续太久)并将其放回池中。

假设N同时与 servletN建立连接,因此将从池中检索连接。并且在处理请求N+1N+2到达请求时,它们将等到释放某些连接(我的池由 支持BlockingQueue)。

我想保证该N+1请求将比N+2请求更早拥有可用连接。

我怎样才能做到这一点?

4

1 回答 1

1

ArrayBlockingQueue提供构造函数参数来控制队列的公平性- 当设置为 时true,保证线程将按照它们调用的顺序获取队列中的元素take()

据我了解,使用ArrayBlockingQueuewithfair = true作为池的后备队列应该足以满足您的情况。

于 2012-10-08T11:13:06.880 回答