一个生产者和多个消费者

时间:2021-08-12 19:36:50
对于一个生产者和多个消费者的情况下,只有一个缓冲区,需要对这一个生产者和多个消费者进行同步么 ?

7 个解决方案

#1


或者说如果同步,同步的必要性体现在哪里 ?

#2


肯定需要同步,只要有多个消费者就需要同步,打个比方说,有一个西瓜,N个人来吃,不能只算某一个人吃了西瓜的百分之多少

#3


模式名字好难听。如果这个buffer固定死的,不需要同步,如果你所指的消费者会修改这个buffer必须同步。1,读写操作会导致异常;2.一个消费者在写的过程中,另外的消费者读取了此时的数据,逻辑上产生了不同步。

#4


引用 3 楼 chenjiawei007 的回复:
模式名字好难听。如果这个buffer固定死的,不需要同步,如果你所指的消费者会修改这个buffer必须同步。1,读写操作会导致异常;2.一个消费者在写的过程中,另外的消费者读取了此时的数据,逻辑上产生了不同步。


消费者不会更改这个buffer,只有一生产者会改变 。。。

#5


引用 4 楼 jaff20071234 的回复:
引用 3 楼 chenjiawei007 的回复:

模式名字好难听。如果这个buffer固定死的,不需要同步,如果你所指的消费者会修改这个buffer必须同步。1,读写操作会导致异常;2.一个消费者在写的过程中,另外的消费者读取了此时的数据,逻辑上产生了不同步。


消费者不会更改这个buffer,只有一生产者会改变 。。。


如果是这样,那就没必要同步了,一个原则:修改buffer的线程只有一个,就不会涉及到同步的问题了

#6


对同一个buffer,只要有写的就需要同步

#7


有多个修改缓冲区的线程时才需要同步

#1


或者说如果同步,同步的必要性体现在哪里 ?

#2


肯定需要同步,只要有多个消费者就需要同步,打个比方说,有一个西瓜,N个人来吃,不能只算某一个人吃了西瓜的百分之多少

#3


模式名字好难听。如果这个buffer固定死的,不需要同步,如果你所指的消费者会修改这个buffer必须同步。1,读写操作会导致异常;2.一个消费者在写的过程中,另外的消费者读取了此时的数据,逻辑上产生了不同步。

#4


引用 3 楼 chenjiawei007 的回复:
模式名字好难听。如果这个buffer固定死的,不需要同步,如果你所指的消费者会修改这个buffer必须同步。1,读写操作会导致异常;2.一个消费者在写的过程中,另外的消费者读取了此时的数据,逻辑上产生了不同步。


消费者不会更改这个buffer,只有一生产者会改变 。。。

#5


引用 4 楼 jaff20071234 的回复:
引用 3 楼 chenjiawei007 的回复:

模式名字好难听。如果这个buffer固定死的,不需要同步,如果你所指的消费者会修改这个buffer必须同步。1,读写操作会导致异常;2.一个消费者在写的过程中,另外的消费者读取了此时的数据,逻辑上产生了不同步。


消费者不会更改这个buffer,只有一生产者会改变 。。。


如果是这样,那就没必要同步了,一个原则:修改buffer的线程只有一个,就不会涉及到同步的问题了

#6


对同一个buffer,只要有写的就需要同步

#7


有多个修改缓冲区的线程时才需要同步