《实验一 Linux多线程编程一》由会员分享,可在线阅读,更多相关《实验一 Linux多线程编程一(6页珍藏版)》请在人人文库网上搜索。
1、实验一 Linux多线程编程I一、 实验目的熟悉GNU GCC编译器,能够用Pthreads线程库熟练编写多线程程序。二、实验内容1、设一个double型的一维数组,数组长度是1,000,000,计算全数组部元素的和。要求:1) 编制一个串行程序,仅有一个主线程完成上述计算。2)编制一个多线程程序,除主线程外,派生四个子线程完成上述计算。分别获得以上两个程序的计算时间,对比分析。2、 定义以下三个数组:#define LEN 100000; Double ALEN, BLEN, CLEN;for (i=0; i+;i,对于信号量,还需要加头文件 。4、编译:$gcc -o hello hell。
2、o.c lpthread 对于是信号量,编译时还需要加-lrt 参数。 5、执行: ./hello 五、实验要求写出完整的源程序,给出程序执行的结果。串行实验源代码如下:#include #include #include#include#define LEN 1000000void main()time_t t1,t2;double DLEN;int i;double sum=0.0;t1=clock();for(i=0;i#include #include #include #define LEN 1000000pthread_t thread4;pthread_mutex_t mut;int number=0, i;double DLEN;double sum=0.0;void *thread1()for (i = 0; i #include #include#include#include#define LEN 100000void main()double ALEN, BLEN, CLEN;int i;clock_t t1,t2;t1=clock();for (i=0;iLEN;i+) Ci=sin(i);Bi=Ci*2;Ai=Bi+Ci;t2=clock();printf(sum=%dn,t2-t1);执行结果。