用Java分叉进程

是否有可能从单个执行序列中创建一个完整的“PROGRAM”分支到两个子程序中?

制作的子程序完全相同。 它们具有相同的执行顺序和值,但现在它们是两个不同的程序。 这就像创建一个Object的克隆,从而为我们提供了两个相同类型的不同对象。 但是,我们不是只是一个对象和一些值,而是在这里创建一个已经加载到JVM中的程序的完全并行执行序列(更喜欢Java的答案)。

您似乎正在寻找与Unix的fork系统调用相当的Java。

这在Java中是不存在的,并且不清楚它是否可能,因为Unix中的进程在JVM中没有直接的等价物(线程不如进程独立)。

但是,为Java 7计划了一个fork框架:

http://www.ibm.com/developerworks/java/library/j-jtp11137.html

它与Unix’es fork / join不同,但它有一些共同点,可能有用。

当然你可以用Java进行并发编程,它不是通过fork()完成的,而是使用Threads。

我不确定你到底想要做什么。 听起来我觉得你有一个解决方案可以解决一个最好以另一种方式解决的问题。 这样的事情会实现你的最终目标吗?

public class MyApp implements Runnable { public MyApp(int foo, String bar) { // Set stuff up... } @Override public void run() { // Do stuff... } public static void main(String[] argv) { // Parse command line args... Thread thread0 = new Thread(new MyApp(foo, bar)); Thread thread1 = new Thread(new MyApp(foo, bar)); thread0.start(); thread1.start(); } } 

虽然我可能会将main()放在真实应用程序中的另一个对象中,因为生命周期管理是一个单独的问题。

好吧,使用ProcessBuilder可以生成另一个程序。

在Java的Java任务中看到Java相当于fork吗?

请在这里和这里阅读线程。