管道中的消费者在什么时候可以减慢生产者的速度?

管道中的消费者在什么时候可以减慢生产者的速度?

话说我们有a | b,什么情况下可以b放慢速度a?如果b是一个 CPU 消耗者,那就可以了……如果b消耗标准输入真的很慢怎么办?还有其他因素吗?

答案1

一般来说,如果b正在使用也需要的资源(CPU、磁盘、内存、文件描述符等)a,或者如果在试图获取的b文件或数据库中持有任何类型的锁,这将a可能减慢a(甚至导致a失败)。

如果没有足够快地读取正在写入的内容,该a进程将在尝试写入时简单地阻塞。我相信这是更常见的情况。bb

相关内容