• Linux线程基础


    复习中掌握线程的基本管理即可,而不用考虑线程的同步:

    创建线程花费的代价,比创建进程小得多,所以同一个进程的,多个线程执行多个任务——>比多个进程执行多个任务更有效率。

    线程也分为用户级线程、内核级线程——对于前者,多个线程之间的上下文切换,由用户决定;对于后者,则由系统决定。(二者一般是1:1或者1:n的对应关系)

    多线程程序的编译时,一定记得要加入动态库,例如:gcc k.c -o k -lpthread,但运行时却不用加。

    首先#include <pthread.h>。

    线程的创建:int pthread_create(&线程名字,NULL,线程执行函数名,传递的参数*arg),执行函数必须是这种:void *func(),可以带参数,也可以不带,函数体随意。成功则返回0。

    线程的等待(所谓等待,就是函数名称的字面意思):int pthread_join(直接是线程名字,保存线程返回值的指针void **returnValue)。成功则返回0。

    线程的退出:void pthread_exit(void *returnValue),返回值就是一个字符串,可以由其他函数,如等待函数pthread_join来检测获取其返回值。

    //这是最简单的使用了
    #include <stdio.h>
    #include <pthread.h>
    
    void *func(void *arg)
    {
        printf("arg=%d
    ", *(int *)arg);
        pthread_exit("bye bye");
    }
    
    int main()
    {
        int res;
        pthread_t first_thread;
        int share_int = 10;
        res = pthread_create(&first_thread, NULL, func, (void *)&share_int);
        printf("res=%d
    ", res);
        
        void *returnValue;
        res = pthread_join(first_thread, &returnValue);
        printf("returnValue=%s
    ", (char *)returnValue);
        return 0;
    }

    线程的属性:

    属性创建:

    属性描述:

  • 相关阅读:
    二十三种设计模式 python实现
    python logging的输出
    redis
    Django1.11序列化与反序列化
    Django1.11基础视图
    Django1.11模型类数据库操作
    Django1.11创建
    泛型全面分析和应用(二)
    泛型全面分析和应用(一)
    注解的基本盘点 -- 《Java编程思想》
  • 原文地址:https://www.cnblogs.com/quanxi/p/6241300.html
Copyright © 2020-2023  润新知