一个很好的通用问题是进餐的哲学家,每个哲学家都使用与左右手邻居共享的lh和rh叉子。我将哲学家的数量增加到99,以使我的四核处理器保持忙碌。结果是大约9540个周期,一些哲学家挨饿,另一些哲学家有足够的食物和大量的思考时间!因此,我需要保护我的哲学家不受饥饿和等待太长时间的影响,所以我添加了更多的逻辑来防止过度进食,要求进食的哲学家们释放并思考,而不是在非常小的休息后张开嘴巴:
// protect the philosopher但我并不满意
我在研究哲学家们的饮食问题,哲学家们轮流思考和吃饭。我想要一个这样的版本,哲学家们会按照他们的id顺序进食:0,1,2,3,4.但是我的线程被阻塞了。just puts thread to sleep to simulate eating return NULL;我在试图让哲学家们理顺时遇到了一些麻烦