ImageVerifierCode 换一换
格式:DOCX , 页数:16 ,大小:18.88KB ,
资源ID:18701003      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/18701003.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Linux多线程实例解析Word文件下载.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

Linux多线程实例解析Word文件下载.docx

1、* Date:2006/9/16 * Copyright (c) 2006,All Rights Reserved!*/ #include void *myThread1(void) int i;for (i=0; i void *create(void *arg) int *num;num = (int *)arg;printf(create parameter is %d n,*num);return (void *)0; int main(int argc ,char *argv) pthread_t tidp;int error;int test=4;int *attr=&test;e

2、rror=pthread_create(&tidp,NULL,create,(void *)attr);if(error) pthread_create is created is not created . nreturn -1; sleep(1);pthread_create is created .nreturn 0;编译方法:gcc -lpthread pthread_int.c -Wall 执行结果:create parameter is 4 pthread_create is created is created . 例程总结: 可以看出来,我们在main函数中传递的整行指针,传递

3、到我们新建的线程函数中。在上面的例子可以看出来我们向新的线程传入了另一个线程的int数据,线程之间还可以传递字符串或是更复杂的数据结构。例程3:程序功能:向新建的线程传递字符串 程序名称:pthread_string.c /* * * Name:* Used to study the multithread programming in Linux OS * Pass a char* parameter to the thread. * Author:* Date:* Copyright (c) 2006,All Rights Reserved!* */ #include struct men

4、ber int a;char *s;struct menber *temp;temp = (struct menber *)arg;menber-a = %d n,temp-a);s = %s ns);int main(int argc,char *argv) struct menber *b;b = (struct menber *)malloc( sizeof(struct menber) );b-a = 4;s = tidp, NULL, create, (void *)b);if( error ) phread is not created.npthread is created.ng

5、cc -Wall pthread_struct.c -lpthread menber-a = 4 s = zieckey pthread is created. 可以看出来main函数中的一个结构体传入了新建的线程中。线程包含了标识进程内执行环境必须的信息。他集成了进程中的所有信息都是对线程进行共享的,包括文本程序、程序的全局内存和堆内存、栈以及文件描述符。例程5:程序目的:验证新建立的线程可以共享进程中的数据 pthread_share.c pthread_share_data.c * Used to study the multithread programming in Linux OS

6、 static int a=4;new pthread . na=%d n,a);a=5;tidp, NULL, create, NULL);new thread is not create . nnew thread is created . ngcc -Wall pthread_share_data.c -lpthread new pthread . a=5 new thread is created . 可以看出来,我们在主线程更改了我们的全局变量a的值的时候,我们新建立的线程则打印出来了改变的值,可以看出可以访问线程所在进程中的数据信息。2、线程的终止 如果进程中任何一个线程中调用ex

7、it,_Exit,或者是_exit,那么整个进程就会终止, 与此类似,如果信号的默认的动作是终止进程,那么,把该信号发送到线程会终止进程。线程的正常退出的方式:(1) 线程只是从启动例程中返回,返回值是线程中的退出码 (2) 线程可以被另一个进程进行终止 (3) 线程自己调用pthread_exit函数 两个重要的函数原型:void pthread_exit(void *rval_ptr); /*rval_ptr 线程退出返回的指针*/ int pthread_join(pthread_t thread,void *rval_ptr); /*成功结束进程为0,否则为错误编码*/ 例程6 线程正

8、常退出,接受线程退出的返回码 pthread_exit.c * A example showing a thread to exit and with a return code. return (void *)8;int main(int argc,char *argv) pthread_t tid;void *temp;tid, NULL, create, NULL);thread is not created . nerror = pthread_join(tid, &temp);thread is not exit . nreturn -2;thread is exit code %d

9、 n, (int )temp); gcc -Wall pthread_exit.c -lpthread 执行结果: new thread is created . thread is exit code 8 可以看出来,线程退出可以返回线程的int数值。线程退出不仅仅可以返回线程的int数值,还可以返回一个复杂的数据结构。例程7 线程结束返回一个复杂的数据结构 pthread_return_struct.c char *b; temp = 8,; void *create(void *arg) printf(new thread . n return (void *)&temp;pthread_t

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1