Linux C
#include <unistd.h> #include <stdio.h> #include <sys/types.h> void main() { printf("main thread:%d\n", getpid()); pid_t pid = fork(); if (pid < 0) { printf("fork error\n"); } else if (pid == 0) { printf("pid == 0 current pid:%d\n", getpid()); } else if (pid > 0) { printf("pid > 0 pid:%d\n", getpid()); } printf("where? pid:%d\n", getpid()); }
$gcc testfork.c -o haha
$./haha
main thread:6443
pid > 0 pid:6443
where? pid:6443
pid == 0 current pid:6444
where? pid:6444
fork后子线程和父线程是抢占机制,谁先运行,结果是不确定的。

浙公网安备 33010602011771号