3.2创建线程

由于线程在第三方库中所以需要-phtread或者-lpthread来编译连接 

 

 

/*
    一般情况下,main函数所在的线程我们称之为主线程(main线程),其余创建的线程
    称之为子线程
    程序中默认只有一个进程,fork()函数调用,2进程
    程序中默认只有一个线程,phtread_create()函数调用,2个线程。

    #include <pthread.h>
    int pthread_create(pthread_t *thread, const pthread_attr_t *attr,
    void *(*start_routine) (void *), void *arg);

        功能:创建一个子线程
        参数:
            thread:传出参数,线程创建成功后,子线程的线程ID被写到该变量中。
            attr:设置线程的属性,一般使用默认值,NULL
            start_routine:函数指针,这个函数是子线程需要处理的逻辑代码
            arg:给第三个参数使用,传参
        返回值:
            成功:0
            失败:返回错误号。这个错误号和之前errno不太一样。
            获取错误号的信息:char * strerror(int errnum);
            在string.h头文件中

*/
#include<stdio.h>
#include<pthread.h>
#include<string.h>
#include<unistd.h>
void *callback(void * arg){
    printf("child thread...\n");
    printf("arg value: %d\n",*(int *)arg);
    return NULL;
}
int main(){
    pthread_t tid;

    int num=10;
    //创建一个子线程
    int ret = pthread_create(&tid,NULL,callback,(void *)&num);
    
    if(ret!=0){
        char * errstr = strerror(ret);
        printf("error : %s\n",errstr);
    }
    for(int i=0;i<5;i++){
        printf("%d\n",i);
    }
    sleep(1);
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值