ネットワークプログラミング実験

1、2つの新しいプログラミング・プロセスを作成し、それぞれの新しいプロセスは、プリントアウトするための責任があります:

(1)「こんにちは!私の父は+親プロセスIDです」

(2)「私は、子プロセスの数を+しています」

(3)50個の素数以内

2は、3つの新しいスレッドを作成するためのプログラミング、各スレッドは、メインスレッドから得られる新たなパラメータを必要とし、プリントアウトするための責任があります:

(1)「こんにちは!私の父は+親プロセスIDです」

(2)「私は、子プロセスの数を+しています」

(3)パラメータが素数であるかどうかを決定します


 

コードは以下の通りです

マルチプロセス

する#include <stdio.hに> 
する#include <unistd.h> 
の#include <math.h>の
 int型のmain(){
         int型T; 

    のため(T = 0、T <= 1 ; T ++ ){
         int型 RET =フォーク()。// 新しいプロセスを作成 
       SLEEP(3 );
         IF(RET == 0 ){
       // 出力親プロセスID、子プロセス番号         
    のprintf(" %d個こんにちは私の父は、I AM%dの\ N-です!と" 、getppid() 、GETPID()); 

// 50プライム内の出力
    のint I、N-;
     のために(私は= 2、I <=50 ; I ++ )以内
    { 
    ため(N = 2であり; n <=(INT)SQRT(I)であり; n ++ 場合(I%N == 0ブレークもし(N ==(INT)SQRT(I)+ 1 
    のprintf(" %dの   " 、I)。} 
       のprintf(" \ n " ); 
    出口(1 )。
        } 
    であれば(RET == - 1 ){ 
         perrorは(" フォークエラー!" )。
        } 
        }
     (T = 0、T <= 1 ; T ++ ){待ち(NULL)。
    } 
   
    戻り 0 
}

 

 


 

マルチスレッド・コード

書式#include <stdio.hに> 
する#include <unistd.h> 
の#include <pthread.hの> 
する#include <stdlib.h>に含ま
書式#include <signal.hに> 
する#include <SYS /中syscall.h>
 無効 *スレッド(無効 * 引数)
{    
    int型 N- PID; PID =(INT )のArg; 
    のprintf(" こんにちは、父がI AMのLUは、%D%です!"、(GETPID)pthread_selfに、());   // 出力プロセスID、サブプロセス番号

// システムコール(SYS_gettid)
    のための(N = 2 ; N- <PID; N - ++)     // それが素数であるかどうかをチェック
    {
         がiF(PIDは%N - ==0){ ブレーク;} 
    } 
    もし、(N == PID){ 
    のprintf(" %dとシュシュ\ n " 、PIDが);}
     { 
    のprintf(" %dはないシュシュ\ n " 、PID);} 
    pthread_exit(0)。   // 释放后资源
} 
      
int型のmain()
{ 
    がpthread_t TID [ 3 ]。INT、N = 13int型私は、
    以下のための式(I = 0 ; I < 3 ; I ++ 
    { 
    int型をRET =のpthread_create(&TID [i]は、NULL、スレッド、(ボイド *)N)。// 创建线程
   
    場合(RET)のprintf(" スレッドを作成できなかったRETた:%d \ nは!" 、RET)。
    } 
     のためには、(iは= 0 ; I < 3 ; I ++ 
    はusleep(1 )。
    以下のための(iは= 0 ; I < 3 ; I ++ 
    pthread_joinを(TID [i]は、NULL);   // 等待线程结束
   
    リターン 0 ; 
}

 

マルチプロセス正常に実行ショット

 

マルチスレッド正常に実行ショット

  私は病気-ください許している場合、これは、実際の使用のために純粋で、初心者の小さなコードスラグでした!

 

おすすめ

転載: www.cnblogs.com/Ada-Yxd/p/12006826.html