1

我有一个进入数据库并获取数据的过程。复杂性和我的问题如下:

一些数据来自一个数据源,其余数据来自另一个数据源。我想知道一旦我开始一个进程,我可以创建一个对象,我将在其中转储所有数据,然后分叉(如在 C 语言中)。将每个进程发送到不同的数据源。

问题 1:如果我做一些类似 fork 的事情,它会同时更新数据的转储,对吗?即,如果父进程从源 A 获取数据并转储到对象 O,而 chil 进程从 B 获取并仅转储到对象 O,那么 O 会同时填充对吗?它不会创建两个对象,一个是来自 A 的数据,另一个是来自 B 的数据。此外,这个过程的效率仅在于多处理器系统吗?

问题2:Java中有这样的东西吗?

谢谢。

4

2 回答 2

3

你可以试试@DaveHoves 的建议。在处理多个源数据加载/处理时,我个人更喜欢的另一个选择是使用ForkJoin框架。请在这里找到好的教程。

祝你好运!

于 2012-07-31T07:05:47.450 回答
2

我会说相当于 fork 的 java 是java.lang.Thread. 看看这里的教程。

如果我正确理解了这个问题,看起来对 DataSource A 的访问将通过应用程序的主线程进行,而对 DataSource B 的访问将由单独的线程处理。我很想将对两个数据源的访问推送到单独的线程中,等待它们都完成(请参阅javadocs),然后将结果合并到一个对象中(上面描述中的 Object O )。

于 2012-07-31T06:51:48.767 回答