#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#include <pthread.h>
#define true 1
#define false 0
int cs;
int flag[2];
int turn;
void *p0()
{
while(true)
{
flag[0]=true;
turn=1;
while(flag[1]&&turn==1);
cs+=2;
printf("p0进程:cs的值为:%d\n",cs);
flag[0]=false;
sleep(3);
}
}
void *p1()
{
while(true)
{
flag[1]=true;
turn=0;
while(flag[1]&&turn==0);
cs+=2;
printf("p1进程:cs的值为:%d\n",cs);
flag[1]=false;
sleep(3);
}
}
int main()
{
int t1,t2;
pthread_t s1,s2;
flag[0]=true;
turn=1;
flag[1]=false;
t1=pthread_create(&s1,NULL,p0,NULL);
if(t1!=0)
{
printf("进程p0创建失败!");
exit(1);
}
t2=pthread_create(&s2,NULL,p1,NULL);
if(t2!=0)
{
printf("进程p1创建失败");
exit(1);
}
pthread_join(s1,NULL);
pthread_join(s2,NULL);
return 0;
}
Paterson算法
最新推荐文章于 2023-08-26 15:57:55 发布