创建多个进程
时间: 2023-10-11 07:13:01 浏览: 33
创建多个进程可以使用操作系统提供的多进程模块,比如在 Python 中,可以使用 `multiprocessing` 模块来创建多个进程。下面是一个简单的示例代码,可以创建两个子进程并分别输出它们的进程 ID:
```python
import multiprocessing
def worker():
print("Child process ID:", multiprocessing.current_process().pid)
if __name__ == '__main__':
# 创建两个子进程
p1 = multiprocessing.Process(target=worker)
p2 = multiprocessing.Process(target=worker)
# 启动子进程
p1.start()
p2.start()
# 等待子进程结束
p1.join()
p2.join()
```
在上面的代码中,`worker` 函数是子进程要执行的任务,`multiprocessing.current_process().pid` 可以获取当前进程的进程 ID。使用 `Process` 类创建子进程,并分别启动和等待它们的结束。执行上述代码,可以看到两个子进程的进程 ID 分别输出。
相关问题
linux创建多个进程
在Linux中,可以使用fork()系统调用来创建多个进程。fork()会创建一个新的进程,该进程是原始进程的副本,包括代码、数据和堆栈等。新进程的PID(进程ID)与原始进程不同,但是它们共享相同的父进程。可以使用fork()的返回值来区分父进程和子进程,如果返回值为,则表示当前进程为子进程,如果返回值大于,则表示当前进程为父进程。在子进程中可以使用exec()系统调用来执行新的程序,从而创建更多的进程。
C语言创建多个进程
在 C 语言中,可以使用 `fork()` 函数来创建子进程。`fork()` 函数会创建一个新的进程,该进程是调用进程的副本,新进程从调用进程的位置开始执行。下面是一个简单的示例代码,可以创建两个子进程并分别输出它们的进程 ID:
```c
#include <stdio.h>
#include <unistd.h>
void worker() {
printf("Child process ID: %d\n", getpid());
}
int main() {
pid_t pid1, pid2;
// 创建第一个子进程
pid1 = fork();
if (pid1 == 0) {
// 子进程1
worker();
return 0;
} else {
// 创建第二个子进程
pid2 = fork();
if (pid2 == 0) {
// 子进程2
worker();
return 0;
} else {
// 等待两个子进程结束
waitpid(pid1, NULL, 0);
waitpid(pid2, NULL, 0);
return 0;
}
}
}
```
在上面的代码中,`worker` 函数是子进程要执行的任务,`getpid()` 可以获取当前进程的进程 ID。使用 `fork()` 函数创建子进程,并分别判断父进程和子进程的执行路径。执行上述代码,可以看到两个子进程的进程 ID 分别输出。