当前位置: 首页 > 面试题库 >

用Java分叉进程

东方森
2023-03-14
问题内容

是否可以在一个执行序列中将“ PROGRAM”的完整分支创建为两个子程序来执行?

产生的子程序完全相同。它们具有相同的执行顺序和值,但是现在它们是两个不同的程序。这就像创建对象的克隆,从而为我们提供了两个相同类型的不同对象一起使用。但是在这里,我们不仅要创建对象和某些值,还要创建一个已经在JVM中加载的程序的完全并行执行序列(对于Java,希望使用此答案)。


问题答案:

您似乎正在寻找与Unix
中的fork系统调用等效的Java 。

这在Java中不存在,也不清楚是否有可能,因为Unix中的进程在JVM中没有直接等效项(线程比进程少独立)。

但是,有一个计划用于Java 7的fork框架:

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

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

当然,您可以使用Java进行并发编程,这不是通过fork()而是使用线程来完成的。



 类似资料:
  • 在Chapter 4, 社会和政治的基础架构的the section called “分叉能力(forkability)”,我们说了潜在的分叉能力对于项目管理的重要影响。但是当分叉确实发生时,我们应该怎么做?你应该如何处理,会发生怎样的情况?与之对应,何时你应当开始一个分叉。 答案取决于你选择的分叉类型。有一些分叉源于对于项目方向的友善但不可调和的异议;也有一些由于技术分歧和个人冲突。当然,很难说

  • 根据文档,sbt 分叉进程应接收当前进程的 jvm 设置: 默认情况下,分叉的进程使用与当前进程的构建、工作目录和JVM选项相同的Java和Scala版本。参见:http://www.scala-sbt.org/0.13/docs/Forking.html 然而,对我来说似乎不是这样。参加以下测试: 如果我使用sbt-Dconfig.resource=test来运行它。然后打印“conf:test

  • 太长别读:如何分叉位于当前运行进程之外的进程? 我正在尝试使用 ,以便在父级的进程出口上启动另一个 nodejs 进程。 我成功地用执行了这个过程,但我需要子进程独立于父进程,这样父进程就可以退出而不等待子进程,因此我尝试使用 选项和 ing 进程: 设置选项。分离为true使得子进程可以在父进程退出后继续运行。 这将产生: 错误。不幸的是,我没能解决这个问题。 在再次阅读文档时遇到麻烦之后,我认

  • 问题内容: 在现代Linux上, 从大型过程 中获得与a - combo 相同的效果的最快,最好的方法是什么? __ 我的问题是流程分叉的大小约为500 MB,而简单的基准测试只能从该流程中获得约50个forks / s(相对于最小规模的流程而言约为1600叉/ s),这对于预期的应用而言太慢了。 有人将Google搜索作为解决此问题的方法而发明了……但同时也警告不要使用它。现代Linux似乎已经

  • 问题内容: 假设我创建了一个信号量。如果我派生了一堆子进程,它们还会使用相同的信号量吗? 另外,假设我创建了一个内部带有信号灯并分叉的结构。所有子进程仍然使用相同的信号量吗?如果不是,将struct + semaphores存储在共享内存中是否允许子进程使用相同的信号量? 我对派生的子进程如何使用相同的信号量感到非常困惑。 问题答案: 假设我创建了一个信号量。如果我派生了一堆子进程,它们还会使用相

  • 问题内容: 我以前在应用程序中使用过线程,并且对线程的概念非常了解,但是最近在我的操作系统讲座中,我遇到了fork()。这类似于线程。 我用谷歌搜索了它们之间的区别,我知道: Fork只是一个看起来与旧流程或父流程完全相似的新流程,但它仍然是具有不同流程ID并拥有自己内存的不同流程。 线程是轻量级进程,具有较少的开销 但是,我仍然有一些疑问。 什么时候应该更喜欢fork()而不是线程? 如果我想以