linux下的多线程编程常用函数

linux下的多线程编程常用函数

ID:8806231

大小:16.94 KB

页数:6页

时间:2018-04-08

linux下的多线程编程常用函数_第1页
linux下的多线程编程常用函数_第2页
linux下的多线程编程常用函数_第3页
linux下的多线程编程常用函数_第4页
linux下的多线程编程常用函数_第5页
资源描述:

《linux下的多线程编程常用函数》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、Linux下pthread的实现是通过系统调用clone()来实现的。clone()是Linux所特有的系统调用,他的使用方式类似fork.intpthread_create(pthread_t*restricttidp,constpthread_attr_t*restrictattr,void*(*start_rtn)(void),void*restrictarg);返回值:若是成功建立线程返回0,否则返回错误的编号形式参数:pthread_t*restricttidp要创建的线程的线程id指针constpthread_attr_t*restrictattr创建

2、线程时的线程属性void*(start_rtn)(void)返回值是void类型的指针函数void*restrictarg  start_rtn的行参进行编译的时候要加上-lpthread向线程传递参数。例程2:功能:向新的线程传递整形值#include#include#includevoid*create(void*arg){int*num;num=(int*)arg;printf("createparameteris%d",*num);return(void*)0;}intmain(intargc

3、,char*argv[]){pthread_ttidp;interror;inttest=4;int*attr=&test;error=pthread_create(&tidp,NULL,create,(void*)attr);if(error){printf("pthread_createiscreatedisnotcreated...");return-1;}sleep(1);printf("pthread_createiscreated...");return0;}编译方法:gcc-lpthreadpthread_int.c-Wall执行结果:cre

4、ateparameteris4pthread_createiscreatedis created...例程总结:能够看出来,我们在main函数中传递的整行指针,传递到我们新建的线程函数中。在上面的例子能够看出来我们向新的线程传入了另一个线程的int数据,线程之间还能够传递字符串或是更复杂的数据结构。例程3:程式功能:向新建的线程传递字符串程式名称:pthread_string.c#include#include#includevoid*create(void*arg){char*name;name=(ch

5、ar*)arg;printf("Theparameterpassedfrommainfunctionis%s  ",name);return(void*)0;}intmain(intargc,char*argv[]){char*a="zieckey";interror;pthread_ttidp;error=pthread_create(&tidp,NULL,create,(void*)a);if(error!=0){printf("pthreadisnotcreated.");return-1;}sleep(1);printf("pthreadiscre

6、ated...");return0;}程式目的:验证新建立的线程能够共享进程中的数据程式名称:pthread_share.c#include#include#includestaticinta=4;void*create(void*arg){printf("newpthread...");printf("a=%d  ",a);return(void*)0;}intmain(intargc,char*argv[]){pthread_ttidp;interror;a=5;error=pthread

7、_create(&tidp,NULL,create,NULL);if(error!=0){printf("newthreadisnotcreate...");return-1;}sleep(1);printf("newthreadiscreated...");return0;}2、线程的终止假如进程中任何一个线程中调用exit,_Exit,或是_exit,那么整个进程就会终止,和此类似,假如信号的默认的动作是终止进程,那么,把该信号发送到线程会终止进程。线程的正常退出的方式:(1)线程只是从启动例程中返回,返回值是线程中的退出码(2)线程能够被另一个进程进

8、行终止(3

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。