EJB强制对资源集合的各个成员进行单线程访问

时间:2014-10-01 16:45:20

标签: java multithreading ejb

在EJB环境中,如何强制与资源集合中的任何给定资源进行交互以实现单线程,而不限制对集合本身的访问?我想允许一个线程与资源A交互,而另一个线程与资源B交互;但禁止两个线程同时与同一资源进行交互。

背后的故事: 我在网络上有多个设备,我的应用程序中有多个线程可能想要与任何给定设备通信。设备本身是愚蠢的,没有会话的概念,这意味着,如果没有访问控制机制,来自不同线程到同一设备的消息可能会交错。

设备池可能有数百个,但不是数千个。它也有些动态 - 设备出现和掉落。

我可以使用自己的类来管理单个设备的并发性,为每个设备实例化一个,然后使用单个bean来管理集合并将请求分派给各个实例。

但是,在Java的并发机制中,大部分或全部必须已经处理好了吗?

这里是否有一个完善的模式我应该使用?

1 个答案:

答案 0 :(得分:1)

您确定要使用EJB吗?混淆标准的Java并发机制和JavaEE是相当不鼓励的......

请参阅: why-spawning-threads-in-java-ee-container-is-discouraged