C语言创建进程,并显示多线程协同工作进程
时间: 2024-12-16 19:23:20 浏览: 1
在C语言中,创建进程通常通过`fork()`函数实现。`fork()`函数会返回两个pid值:一个是子进程的PID(如果成功创建),另一个是0(在父进程中)。下面是一个简单的示例,展示了如何创建一个新进程:
```c
#include <stdio.h>
#include <unistd.h>
int main() {
pid_t pid = fork(); // 创建新进程
if (pid == 0) { // 子进程部分
printf("这是子进程,PID: %d\n", getpid()); // 打印子进程PID
sleep(2); // 暂停两秒
} else if (pid > 0) { // 父进程部分
printf("这是父进程,PID: %d,子进程PID: %d\n", getpid(), pid); // 打印父进程PID及子进程PID
wait(NULL); // 等待子进程结束
} else { // fork失败的情况
perror("fork failed");
return 1;
}
return 0;
}
```
关于多线程协作,C语言本身并不直接支持原生的并发,你可以使用POSIX线程库(pthread)。这里简单展示如何在一个线程中启动另一个线程:
```c
#include <stdio.h>
#include <pthread.h>
void* thread_func(void *arg) {
printf("这是一个新的线程,PID: %d\n", pthread_self());
// 在这里添加线程的其他操作...
return NULL;
}
int main() {
pthread_t tid; // 新线程变量
int rc = pthread_create(&tid, NULL, thread_func, NULL); // 创建新线程
if (rc) {
perror("无法创建线程");
return 1;
}
// 主线程继续运行...
pthread_join(tid, NULL); // 等待新线程完成
return 0;
}
```
阅读全文