对于生产者和消费者在仅抢占式任务调度的OS中优先级的设定问题。对于两个线程,假如同操作一个队列,谁优先级高谁执行的次数多是毋庸置疑的,但这执行不一定是有效的。假如消费者优先级高,那么对它而言,大多数情况下队列为空,它不断的被挂起,唤醒。假如生产者优先级高,那么对它而言,大多数情况下队列为满,它同样的不断被挂起,唤醒。这样,两种办法实际上都不是有效的。那么两个线程一定要sleep,至少高优先级的一定要sleep,可sleep多长时间呢。对于消费者和生产者X,Y,假如消费者消费速率为x,sleep时间为xt,生产者生产速率为y,sleep时间为yt,队列长度为L,那么何时总消费速率 M 最大呢?此时xt和yt分别为多少?显然是一个规划问题(不一定是线性的)。那么当线程个数是3,而且互相制约呢,比如有两个Q1,Q2,对于Q1,X,Y分别是消费者和生产者,对于Q2,Y,Z分别是消费者和生产者,那么此时的最佳情况又如何呢?(一定不是平面上的线性规划问题,三个变量嘛。)如果为 n 呢?看起来就很复杂了,有空再研究。