• linuc c 代码示例


    fork的应用:

    #include "stdio.h"
    #include "string.h"
    #include <sys/types.h>
    #include <sys/stat.h>
    #include <fcntl.h>
     
    #include <unistd.h>
    
    #define Max(a,b) ({int a1=a,b1=b; a1>b1?a1:b1;})
    
    int main()
    {
    
        int i,j,k,*q;
        char *p="abc";
        int pids[10];
        int pid;
    
        q=pids;
    
        //printf("%d 
    ", getpid());
        //sleep (3);
    
    for(i=0;i<3;i++)
    {
    
        printf("for-%d
    ",i);
        pid=fork();
        if(pid) {
            *(q++) = pid;    
        }else if(pid == 0){
            sleep(5);
            printf("child:%d 
    ", getpid());
            break;
        }
    }
        if(pid>0)
        {
            for(i=0;i<3;i++)
            {
            //    waitpid(pids[i], NULL, 0);    
                printf("parent: %d, %d 
    ", getpid(),pids[i]);
    
            }
        }
        printf("song 
    ");
    
    }

    没有waitpid时输出:

    有waitpid时:

    pthread_create 函数示例:

    #include "stdio.h"
    #include "string.h"
    #include "pthread.h"
    
    void *thr_fn(void *arg)
    {
    
    sleep(15);
        printf("sub :%d 
    ", pthread_self());
        return NULL;
    }
    
    int main()
    {
        pthread_t err;
        pthread_t ntid;
    
        err = pthread_create(&ntid, NULL, thr_fn, NULL);
        if (err != 0)
            printf("can't create thread: %s
    ", strerror(err));
        //pthread_join(ntid,NULL);
    
        printf("main :%d 
    ", pthread_self());
    sleep(16);
        return 0;
    
    
    }
  • 相关阅读:
    Python中使用MongoEngine
    Python中MongoDB使用
    JAVA 日期相关API (JDK 8 新增)
    JAVA 日期相关API(JDK 8 之前)
    StringBuffer 和StringBuilder
    String 类型转换
    String类常用方法
    JAVA String类
    关于线程锁的释放和保留
    java线程同步--使用线程池
  • 原文地址:https://www.cnblogs.com/siqi/p/4060834.html
Copyright © 2020-2023  润新知