linux环境 哲学家进餐问题
程序框架如下,必须在linux下编程
各位高手求助啊~~
跪求代码
#include<pthread.h>
#include<stdio.h>
#include<errno.h>
...... //声明条件变量和互斥量,以及线程共享的数据
void P( )
{
pthread_mutex_lock();
......
pthread_cond_wait( ); //等待条件变量
......
pthread_mutex_unlock();
......
}
void V()
{
pthread_mutex_lock( );
......
pthread_cond_signal( );
pthread_mutex_unlock( );
}
void *create(void *arg) //新线程执行的函数
{
int ph_no; //哲学家编号
ph_no=*(int *)arg;
......
P(ph_no);
P((ph_no+1)%5);
printf("the no %d philosopher dining\n",ph_no);
V(ph_no);
V((ph_no+1)%5);
pthread_exit(NULL);
}
main()
{
pthread_t p_thread[5]; //线程ID
int ph_no[5],ret,i; //ph_no为哲学家编号
pthread_create( ); ///创建5个哲学家线程
......
}