1 / 7
文档名称:

实验七:Linux多线程编程(实验报告).docx

格式:docx   大小:21KB   页数:7页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

实验七:Linux多线程编程(实验报告).docx

上传人:梅花书斋 2020/3/18 文件大小:21 KB

下载得到文件列表

实验七:Linux多线程编程(实验报告).docx

文档介绍

文档介绍:实验七:Linux多线程编程(4课时)实验目的:掌握线程的概念;熟悉Linux下线程程序编译的过程;掌握多线程程序编写方法。实验原理:为什么有了进程的概念后,还要再引入线程呢?使用多线程到底有哪些好处?什么的系统应该选用多线程?我们首先必须回答这些问题。1多线程概念使用多线程的理由之一是和进程相比,它是一种非常"节俭"的多任务操作方式。运行于一个进程中的多个线程,它们彼此之间使用相同的地址空间,共享大部分数据,启动一个线程所花费的空间远远小于启动一个进程所花费的空间。使用多线程的理由之二是线程间方便的通信机制。同一进程下的线程之间共享数据空间,因此一个线程的数据能够直接为其它线程所用,这不但快捷,而且方便。2多线程编程函数Linux系统下的多线程遵循POSIX线程接口,称为pthread。编写Linux下的多线程程序,,。pthread_t在头文件/usr/include/bits/:typedefunsignedlongintpthread_t;它是一个线程的标识符。函数pthread_create用来创立一个线程,它的原型为:externintpthread_create((pthread_t*thread,constpthread_attr_t*attr,void*(*start_routine)(void*),void*arg));第一个参数为指向线程标识符的指针,第二个参数用来设置线程属性,第三个参数是线程运行函数的起始地址,最后一个参数是运行函数的参数。函数pthread_join用来等待一个线程的结束。函数原型为:externintpthread_join(pthread_tth,void**thread_return);第一个参数为被等待的线程标识符,第二个参数为一个用户定义的指针,它能够用来存储被等待线程的返回值。函数pthread_exit的函数原型为:externvoidpthread_exit(void*retval);唯一的参数是函数的返回代码,只要pthread_join中的第二个参数thread_return不是NULL,这个值将被传递给thread_return。3修改线程的属性线程属性结构为pthread_attr_t,它在头文件/usr/include/。属性值不能直接设置,须使用相关函数进行操作,初始化的函数为pthread_attr_init,这个函数必须在pthread_create函数之前调用。设置线程绑定状态的函数为pthread_attr_setscope,它有两个参数,第一个是指向属性结构的指针,第二个是绑定类型,它有两个取值:PTHREAD_SCOPE_SYSTEM(绑定的)和PTHREAD_SCOPE_PROCESS(非绑定的)。另外一个可能常见的属性是线程的优先级,它存放在结构sched_param中。用函数pthread_attr_getschedparam和函数pthread_attr_setschedparam进行存放,一般说来,我们总是先取优先级,对取得的值修改后再存放回去。4线程的数据处理和进程相比,线程的最大优点之一是数据的共享性,各个进程共享父进程处沿袭