![]() |
1
4
看看前面的stackoverflow问题: Producer/Consumer threads using a Queue 第一个答案是使用 ExecutorService . 这是一种实现您所希望的功能的方法,但它使用内存中的队列——不过您可以很容易地将其更改为JMS队列。 |
![]() |
2
3
这种模式有几个名字( 例如后备存储器、写后置等… )这在数据网格/缓存技术以及其他技术中经常会看到。通常,域对象存储在某种类型的FIFO或优先级队列中,然后调度器将它们放在备用线程或进程上,并将它们传递给真正的DAL。队列可以在内存中,也可以实际放置在网络队列上,如ActiveMQ或msmq。此外,我还看到了场景,其中每种类型的DB操作都有单独的队列。 在许多情况下,这是作为表示相同接口的DAL前面的外观实现的。通过这种方式,其他应用程序认为它们正在与“真实”DAL通信,并且是从其他相关关注点抽象出来的。这种分离允许您在需要时更改它。当对象数据提交到门面时,数据排队,然后控制权返回给调用应用程序。 一旦排队,您就可以批量更新/插入或继续一次处理一个项目。请记住,事务的概念具有非常不同的含义,因此您需要通盘考虑。 尽管有技术可以做到这一点…这更多的是一种模式,而不是单一的技术。我没有现成的示例,但您可以从OracleConnecture等产品中查看数据网格文档。寻找后备仓库。 |
![]() |
user107586 · 如何处理等待句柄不会导致无限循环? 7 月前 |
![]() |
ron burgundy · 获取-释放语义是否跨线程传递?[副本] 7 月前 |
![]() |
BenjiFB · C#内存缓存:在一次操作中追加到列表? 7 月前 |
![]() |
András Takács · Python多线程问题 11 月前 |
|
András Takács · Python多线程错误 11 月前 |