问题标签 [fork]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
4521 浏览

c - wait((int *)0) 的含义

一个使用这样的等待功能的程序是这样的:

0 投票
2 回答
984 浏览

c++ - 为什么我在使用 vfork() 时会出错?

这是我的代码...我不知道为什么我得到一个错误段...有人可以向我解释原因吗?

0 投票
3 回答
690 浏览

python - 如何从分叉进程发送大量数据?

我有一个库的 ctypes 包装器。不幸的是,这个库不是 100% 可靠的(偶尔的段错误等)。由于它的使用方式,我希望包装器对库崩溃具有合理的弹性。

做到这一点的最好方法似乎是分叉一个过程并将结果从孩子那里发回。我想按照以下方式做一些事情:

不过,这并不完全奏效。分叉的进程在写入时挂起。我想一次发送太多吗?这个问题有更简单的解决方案吗?

0 投票
1 回答
4198 浏览

python - Python 多处理是如何在 Windows 上实现的?

鉴于没有 Windows fork() 调用,Python 2.6 中的多处理包是如何在 Windows 下实现的?在 Win32 线程之上或某种假分叉之上,或者只是在现有多线程之上的兼容性?

0 投票
2 回答
738 浏览

c - 我应该怎么做才能在 C 中修改我的 fork() 以使其运行良好?

我不明白为什么我的代码不起作用。

这是我的代码。我不知道为什么我得到一个错误段。有人可以向我解释原因吗?

0 投票
2 回答
9569 浏览

c - 正确使用fork、wait、exit等

我有这个问题要解决,我不知道该怎么做,因为只有几个系统调用我们可以用来解决它,而且我看不出它们对这种情况有什么帮助。

练习:
我有一个大小为 [10][1000000] 的矩阵,其中包含整数,并且对于每一行,我使用 fork() 创建一个新进程。每个过程的想法是遍历该特定行的所有数字并找到一个特定数字,然后打印有关它的消息。这是问题的第一步,并且已经完成。第二步是按顺序打印每行中该数字的出现总数。最后,该数字出现的总数。

调用:
我可以使用的系统调用在本练习的文档中是这样描述的:

  • pid_t fork(void);
  • void exit(int status);
  • pid_t wait(int *status);
  • pid_t waitpid(pid_t pid, int *status, int options);

问题:
我不知道该怎么做,因为exit()调用只允许我传递一个低于 256 的数字,如果出现的次数大于这个数字怎么办?我该如何返回这样的号码?

另一个问题:
我不完全理解两者之间的区别wait()以及waitpid()如何/在哪里使用另一个。除了手册页之外,是否还有更多文档可以让我查看代码示例等以便更好地理解它们?或者有人可以向我解释这些差异并提供一个证明这种差异的基本示例吗?

0 投票
5 回答
15266 浏览

ruby - 如何触发并忘记子进程?

我有一个长时间运行的进程,我需要它来启动另一个进程(也将运行一段时间)。我只需要启动它,然后完全忘记它。

我设法通过从 Programming Ruby 书中获取一些代码来做我需要的事情,但我想找到最好/正确的方法,并了解正在发生的事情。这是我最初得到的:


那么,这是这样的方式,还是我应该怎么做?

检查下面的答案后,我最终得到了这段代码,这似乎更有意义:


我会很感激一些关于如何fork工作的解释。[已经知道了]

分离$$对吗?我不知道为什么会这样,我真的很想更好地了解情况。

0 投票
2 回答
17597 浏览

linux - 哪些情况可能会导致 Linux 上的 fork() 或 system() 调用失败?

以及如何找出其中任何一个是否正在发生,并导致 fork() 或 system() 返回错误?换句话说,如果 fork() 或 system() 返回错误,我可以检查 Linux 中的哪些内容来诊断为什么会发生该特定错误?

例如:

  • 只是内存不足(导致 errno ENOMEM) - 使用“免费”等检查内存使用情况。
  • 内核内存不足,无法复制父进程的页表和其他记帐信息(导致 errno EAGAIN)
  • 是否有全局进程限制?(也导致errno EAGAIN?)
  • 是否有每个用户的进程限制?我怎样才能知道它是什么?
  • ...?
0 投票
3 回答
5310 浏览

java - Java相当于Ant的Java任务中的fork?

Ant Java 任务提供fork参数,根据定义“如果启用,则触发另一个 VM 中的类执行”。由于我们正在处理大量数据,因此设置此参数可以避免耗尽 Java 堆空间。
我们希望能够通过 Java 类来做同样的事情。实现所提供的功能的最佳方法是fork什么?

0 投票
1 回答
327 浏览

open-source - 分叉项目时新的许可文本应该包括什么?

分叉项目时,新项目对许可文本的责任是什么?具体来说,BSD 许可证(许可许可证)包括以下文本:

源代码的再分发必须保留上述版权声明、此条件列表和以下免责声明。

所以如果我正在制作同一个项目的新版本,我是否需要继续包含旧的通知文件?像这样简单地将新版权附加到旧版权就足够了吗?

版权所有 (c) 1999-2006 [旧项目], 2009 [新项目]

如果我要转换许可证(例如,转换为 GPL),我还需要包含旧的许可证文本吗?