6 个解决方案
#1
友情帮顶,,等待高人解答..
#2
好像不太需要做并发控制,这个是FILE的输出缓冲机制带来的一点好处。
整体上,父进程每次fork都会得到子进程的PID,过一段时间就去kill子进程,事情就完成了。
自己试着先写出第一个fork,子进程分支随便干点啥,就会打消对多进程的陌生和恐惧心理的。
整体上,父进程每次fork都会得到子进程的PID,过一段时间就去kill子进程,事情就完成了。
自己试着先写出第一个fork,子进程分支随便干点啥,就会打消对多进程的陌生和恐惧心理的。
#3
我们都选的第12题,做好了,借给我借鉴一番,好么
#4
#include <stdio.h>
#include <signal.h>
#include <stdlib.h>
#include <unistd.h>
void child_function_one()//子进程1的函数
{
while(1)
{
printf("Hello ! I am subprogram 1! \n");
sleep(2);//睡眠2秒
}
}
void child_function_two()//子进程2的函数
{
while(1)
{
printf("Hello ! I am subprogram 2! \n");
sleep(2);
}
}
int main()
{
pid_t p1, p2;
p1=fork();//派生子进程1
if (p1==0)
{
child_function_one();
}
p2=fork();//派生子进程2
if (p2==0)
{
child_function_two();
}
sleep(10);//主进程睡眠10秒
kill(p1,SIGKILL);//结束子进程
kill(p2,SIGKILL);
}
#include <signal.h>
#include <stdlib.h>
#include <unistd.h>
void child_function_one()//子进程1的函数
{
while(1)
{
printf("Hello ! I am subprogram 1! \n");
sleep(2);//睡眠2秒
}
}
void child_function_two()//子进程2的函数
{
while(1)
{
printf("Hello ! I am subprogram 2! \n");
sleep(2);
}
}
int main()
{
pid_t p1, p2;
p1=fork();//派生子进程1
if (p1==0)
{
child_function_one();
}
p2=fork();//派生子进程2
if (p2==0)
{
child_function_two();
}
sleep(10);//主进程睡眠10秒
kill(p1,SIGKILL);//结束子进程
kill(p2,SIGKILL);
}
#5
楼上的正解,代码都贴了,我就不说什么了
#6
可以使用OpenMP啊,多方便。。。
用linux也可以使用pthread,或者楼上的代码
用linux也可以使用pthread,或者楼上的代码
#1
友情帮顶,,等待高人解答..
#2
好像不太需要做并发控制,这个是FILE的输出缓冲机制带来的一点好处。
整体上,父进程每次fork都会得到子进程的PID,过一段时间就去kill子进程,事情就完成了。
自己试着先写出第一个fork,子进程分支随便干点啥,就会打消对多进程的陌生和恐惧心理的。
整体上,父进程每次fork都会得到子进程的PID,过一段时间就去kill子进程,事情就完成了。
自己试着先写出第一个fork,子进程分支随便干点啥,就会打消对多进程的陌生和恐惧心理的。
#3
我们都选的第12题,做好了,借给我借鉴一番,好么
#4
#include <stdio.h>
#include <signal.h>
#include <stdlib.h>
#include <unistd.h>
void child_function_one()//子进程1的函数
{
while(1)
{
printf("Hello ! I am subprogram 1! \n");
sleep(2);//睡眠2秒
}
}
void child_function_two()//子进程2的函数
{
while(1)
{
printf("Hello ! I am subprogram 2! \n");
sleep(2);
}
}
int main()
{
pid_t p1, p2;
p1=fork();//派生子进程1
if (p1==0)
{
child_function_one();
}
p2=fork();//派生子进程2
if (p2==0)
{
child_function_two();
}
sleep(10);//主进程睡眠10秒
kill(p1,SIGKILL);//结束子进程
kill(p2,SIGKILL);
}
#include <signal.h>
#include <stdlib.h>
#include <unistd.h>
void child_function_one()//子进程1的函数
{
while(1)
{
printf("Hello ! I am subprogram 1! \n");
sleep(2);//睡眠2秒
}
}
void child_function_two()//子进程2的函数
{
while(1)
{
printf("Hello ! I am subprogram 2! \n");
sleep(2);
}
}
int main()
{
pid_t p1, p2;
p1=fork();//派生子进程1
if (p1==0)
{
child_function_one();
}
p2=fork();//派生子进程2
if (p2==0)
{
child_function_two();
}
sleep(10);//主进程睡眠10秒
kill(p1,SIGKILL);//结束子进程
kill(p2,SIGKILL);
}
#5
楼上的正解,代码都贴了,我就不说什么了
#6
可以使用OpenMP啊,多方便。。。
用linux也可以使用pthread,或者楼上的代码
用linux也可以使用pthread,或者楼上的代码