zoukankan      html  css  js  c++  java
  • 自测之Lesson14:多线程编程

    题目:创建一个线程,并理清主线程结束时会发生什么。

    代码:

    #include <stdio.h>
    #include <pthread.h>
    #include <unistd.h>
    
    void func()
    {
            fprintf(stderr, "Thread has been created!
    ");
            return;
    }
    
    
    int main()
    {
            pthread_t tid;
            printf("Create thread1...
    ");
            pthread_create(&tid, NULL, (void*)func, NULL);
            printf("main() begin sleep...
    ");
            sleep(5);                       // 防止父进程退出导致线程结束,而使得其调用函数无法执行
            printf("main() end sleep...
    ");
            return 0;
    }
    

      

    题目:创建一个线程,并使用join函数等待线程结束。

    完成代码:

    #include <stdio.h>
    #include <pthread.h>
    #include <unistd.h>
    
    void func()
    {
            fprintf(stderr, "Thread has been created!
    ");
            pthread_exit(NULL);
            return;
    }
    
    
    int main()
    {
            pthread_t tid;
            printf("Create thread1...
    ");
            pthread_create(&tid, NULL, (void*)func, NULL);
            pthread_join(tid, NULL);
            return 0;
    }
    

      

    题目:使用join函数完成传值功能。

    完成代码:

    #include <stdio.h>
    #include <pthread.h>
    #include <unistd.h>
    
    int retVal;
    void func()
    {
            retVal = 99; 
            fprintf(stderr, "Thread has been created!
    ");
            pthread_exit(&retVal);
    }
    
    
    int main()
    {
            pthread_t tid;
            printf("Create thread1...
    ");
            pthread_create(&tid, NULL, (void*)func, NULL);
            int *pRet;
            pthread_join(tid, (void*)&pRet);
            printf("retVal is %d
    ", *pRet);
            return 0;
    }
    

      

  • 相关阅读:
    Python3练习题系列(02)
    英语口语学习笔记(09)
    Python3练习题系列(01)
    (转)chm格式的电子书打开是空白的解决办法
    SQL Server 创建链接服务器
    (转)js正则表达式之中文验证
    (转)SQL语句中的N'xxxx'是什么意思
    (转)C#之玩转反射
    (转)抽象工厂学习笔记
    (转)单例模式(Singleton)
  • 原文地址:https://www.cnblogs.com/xzxl/p/8556336.html
Copyright © 2011-2022 走看看