1
我在1Reader线程/ 1Writer线程设置中使用规范环形缓冲区实现。缓解环形缓冲区中轮询效应的策略
由于读写器在缓冲区为空[写入程序在缓冲区满时循环]并连续轮询控制变量时循环,因此我调用pthread_yield(在我的情况下只是sched_yield的包装)以优先考虑其他线程在系统中。我没有使用任何互斥锁,因为它不需要正常运行。
有没有更好的方法来减轻轮询效应(又名CPU烧录)?我正在考虑pthread的条件变量 - 因为当没有数据时[无空间]我大部分会阻塞这个线程 - 但是我担心会引入开销。
感谢