首页 > 编程语言 > 详细

Linux线程基础

时间:2017-01-01 18:59:00      阅读:246      评论:0      收藏:0      [点我收藏+]

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

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

线程也分为用户级线程、内核级线程——对于前者,多个线程之间的上下文切换,由用户决定;对于后者,则由系统决定。(二者一般是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\n", *(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\n", res);
    
    void *returnValue;
    res = pthread_join(first_thread, &returnValue);
    printf("returnValue=%s\n", (char *)returnValue);
    return 0;
}

线程的属性:

属性创建:

属性描述:

Linux线程基础

原文:http://www.cnblogs.com/quanxi/p/6241300.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!