实验目的
事先编辑好数据文件1.dat和2.dat,它们的内容分别为1 2 3 4 5 6 7 8 9 10和 -1 -2 -3 -4 -5 -6 -7 -8 -9 -10。根据示例代码和其运行效果设计一个程序,在这个程序中一共有3个线程,其中两个线程负责从文件读取数据到公共的缓冲区,另外一个线程从缓冲区读取数据作不同的处理(加和乘运算)。
具体要求:
- 线程1从1.dat将数据读文件读到buf1中;
- 线程2从2.dat 将数据读到buf2中;
- 当buf1,buf2有数据时,线程3将buf1和buf2的结果相加和乘法处理,并将结果显示出来;
- 要求分别使用互斥锁-条件变量和信号量两种方式实现。
实验步骤:
Task1 互斥锁 - 代码图:
2.gcc运行:
Task2 信号量
1.代码:
2.运行: