分叉一个过程

时间:2012-07-31 06:31:06

标签: java c fork

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

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

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

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

感谢。

2 个答案:

答案 0 :(得分:3)

您可以尝试@DaveHoves建议的内容。 我个人更喜欢使用多个源数据加载/处理的另一个选项是使用ForkJoin框架。 请找到好的教程here

祝你好运!

答案 1 :(得分:2)

我会说与fork相当的java是java.lang.Thread。请查看here获取教程。

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