frok的一个Demo测试素数

1.代码

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>


#define LEFT 30000000
#define RIGHT 30000200

int main()
{
   pid_t pid;
   int i,j,Flag;
	//Flag是判断是否是素数的标志

   for(i = LEFT ; i <= RIGHT; i++)
   {
           pid = fork();
           //父进程创建出201个子进程

			//如果是父进程 什么也不做
           if(0 == pid)
           {

           }
           else//子进程只判断一个数
           {
                   Flag = 1;

                   for(j = 2; j <= i/2; j++)
                   {
                           if(0 == i % j)
                           {
                                   Flag = 0;
                           }
                   }

                   if(Flag)
                   {
                           printf("%d is a prime\n", i);
                   }
                   exit(0);//立即exit
           }
   }
   
   return 0;
}

在这里插入图片描述
两者的时间差距为何如此巨大,是我用了ssh的原因吗?也不应该啊

2.这个demo里面,没有对僵尸进程进行及时回收他们,还仍需改进

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值