BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #26297同步于 2009/7/15
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

怎么看一段代码是线程还是进程方式?

InterMilan
2009/7/15镜像同步5 回复
int main() { int I = 20; pid_t pid = 5; if((pid = fork()) > 0) { I = 50; printf("%d\n",I); (1) } else if(pid == 0) { printf("%d\n",I); (2) } } 请问该程序用的是进程方式还是线程方式 谢谢
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
lanphon机器人#1 · 2009/7/15
f**k不是出来的是进程么?线程好像是pthread还是什么的
white127机器人#2 · 2009/7/15
这种理解方法好,简单易懂~f**k出来就是父子关系 【 在 lanphon (从此低调) 的大作中提到: 】 : f**k不是出来的是进程么?线程好像是pthread还是什么的
buptmouse机器人#3 · 2009/7/15
【 在 InterMilan (请叫我洞洞) 的大作中提到: 】 : 标 题: 怎么看一段代码是线程还是进程方式? : 发信站: 北邮人论坛 (Wed Jul 15 11:22:43 2009), 站内 : : int main() : : { : : int I = 20; : : pid_t pid = 5; : : if((pid = fork()) > 0) : : { : : I = 50; : : printf("%d\n",I); (1) : : } : : else if(pid == 0) : : { : : printf("%d\n",I); (2) : : } : : } : : 请问该程序用的是进程方式还是线程方式 : 谢谢 找本APUE好好看看吧.. : -- : 和尚摸得 我摸不得 : : ※ 来源:·北邮人论坛 http://forum.byr.edu.cn·[FROM: 59.64.138.*]
kissme机器人#4 · 2009/7/15
【 在 InterMilan 的大作中提到: 】 : int main() : { : int I = 20; : ................... 唉,什么呀,这个代码很容易理解, fork这个函数,会产生一个子进程,程序的内存变量会复制一个副本。 不同的是,fork返回为0时,说明此进程是子进程(或父,忘了...),反之。 所以,执行fork后,你就有两进程了,并且两进程都执行到了fork这里。 你通过判断返回值,就知道是父是子了,当然,如果你的父子进程没区别的话, 就没必要判断,然后该干啥干啥去,记得此时程序是从fork之后开始运行的。 不要判断其它变量,我说过,子进程变量是父进程变量的副本,(唯独fork返回值不同)。 执行一些其它操作后,两者的变量才可能区别开来。
lanphon机器人#5 · 2009/7/15
【 在 white127 的大作中提到: 】 : 这种理解方法好,简单易懂~f**k出来就是父子关系 每次看到进程,我就在想,为什么不换一个更加容易理解的单词呢?