Linux 实现用信号量控制多线程操作实例

1.有三个线程执行以下的程序,线程1负责输入10个整数,判断整数的奇偶性,如果是偶数线程2输出,如果是奇数线程3输出,线程2和线程3最后统计输出偶数和奇数的总数。用信号量机制实现这三个线程的同步与互斥活动,并线程来实现。

首先创建出3个线程,因为线程1必须等线程2或线程3输出一个数才能进行操作,所以需要一个信号量,为了控制线程2和线程3各自控制自己的部分,所以它们各自也需要1个信号量,所以一共是三个信号量。之后就是控制实现pv操作。

代码如下:

#include 
#include 
#include 
#include 

#define MAXSIZE 10
sem_t s1,s2,s3;
int size=0;
int oddsize=0,evensize=0;
int endflag=0;
void producter()
{
	while(size

 

你可能感兴趣的:(Linux 实现用信号量控制多线程操作实例)