南宁做网站,wordpress love,WordPress时间倒序,信阳建设企业网站一个应用程序可以启动若干个线程#xff1b;线程#xff0c;是程序执行的最小单位#xff1b;一般一个最简单的程序最少有一个线程#xff0c;就是程序本身#xff0c;也是主函数#xff1b;一个线程阻塞不会影响另一个线程#xff1b;多线程的进程可以尽可能多的利用系… 一个应用程序可以启动若干个线程线程是程序执行的最小单位一般一个最简单的程序最少有一个线程就是程序本身也是主函数一个线程阻塞不会影响另一个线程多线程的进程可以尽可能多的利用系统CPU资源。 /***
thread.c
***/
#includestdio.h
#includestdlib.h
#includepthread.h
#includeunistd.hint *thread(void *arg)
{pthread_t newThid;newThid pthread_self();printf(this is a new thread,thread ID %lu\n,newThid);return NULL;
}int main()
{int iRet 0;pthread_t thid;printf(main thread,ID is %lu\n,pthread_self());iRet pthread_create(thid,NULL,(void *)thread,NULL);if(iRet ! 0){printf(thread creation failed\n);exit(1);}sleep(1);exit(0);
} Attention编译时需要加上-lpthread来连接libpthread.so动态库否则会报错。 Int pthread_create(pthread_t *thread,const pthread_attr_t *attr,void*(*start_routine)(void*),void *arg); 函数参数 pthread_t 代表创建线程的唯一标识是一个结构体需要创建好以后将结构体的指针传递过去 pthread_attr_t代表创建这个线程的一些配置比如分配栈的大小一般设置位NULL表示默认的创建线程的配置 start_routine代表一个函数的地址创建线程时会调用这个函数函数的返回值时void*函数的参数也是void* arg代表调用第三个函数传递的参数。 函数的返回值 函数成功返回0不等于0表示函数调用失败此时可以通过strerror(error)可以打印出具体的错误。 ATTENTION每个函数都有一份errno副本不同的线程拥有不同的errno 转载于:https://www.cnblogs.com/wanghao-boke/p/11251709.html