我正在研究与C中的餐饮哲学家问题相当的问题。
我们的主题有一些新规则,添加了 Resting 状态和以下规则:
“各州的‘思考’和‘吃’有一个你必须确定的最长持续时间。 ”
以下结构有一个state
变量:
typedef struct philo_s
{
pthread_t handler; // The thread of the philosopher
char state; // Either 'E' for eat, 'T' for think or 'R' for rest
int dur_think; // Defines the maximum duration of the think state
int dur_eat; // Defines the maximum furation of the eat state
int max_eat;
int num;
} philo_t;
我从上述规则中了解到,给定的线程在给定的时间内不能具有相同的状态。
那么我如何监控一个结构以查看它是否在定义的秒数内具有相同的值?
如果哲学家 1 不能处于进食状态超过一秒钟并且他达到了那个极限,我可能会强迫他进入另一种状态。
代码似乎无关紧要,因为函数只是改变哲学家状态的条件。