我有一个想要编写的组件,它感觉像是一种常见的模式。我希望找到该模式的通用名称(如果有的话),以及如何实现它的示例。
我有一项服务可以对请求进行排队并一次处理一个请求。我有许多发出请求的客户端线程。关键是调用线程必须阻塞,直到它们自己的特定请求得到服务。
例如如果有 10 个线程,都发出请求,那么第 10 个线程将在等待其请求到达队列前端并被处理时阻塞最长的时间。简而言之,调用就像这样简单:
service.processMessage(myMessage); /* block whilst it enqueues, waits, */
/* processes and returns */
我知道你在想什么——为什么还要麻烦线程呢?这么说吧,设计限制远远超出了我的控制范围。
此外,这应该在 JavaME 上运行,这意味着 infuriating subset of real Java ,并且没有华丽的外部库。
最佳答案
如果您对处理请求的总顺序没有任何要求(即,您不介意任意混合来自不同线程的请求,而不管它们“到达”的顺序),您可以简单地使用 processMessage () 同步
,我猜。
关于java - 是否有此排队系统的模式以及 Java 代码示例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1536769/