我有一个 .NET 队列对象。生产者线程做Enqueue操作,入队的数据是一个byte[]数组,而另一个消费者线程对同一个队列对象做Dequeue操作。
我使用锁来处理并发。我的代码似乎一直运行良好,但昨天发生了奇怪的事情。我从消费者线程得到的数据与我产生的数据不同:数组长度错误、重复数组……这是线程安全保护失败造成的吗?
在我看来,并发只会导致数据丢失。
我在这里的第一篇文章,请多多包涵。
我有一个 .NET 队列对象。生产者线程做Enqueue操作,入队的数据是一个byte[]数组,而另一个消费者线程对同一个队列对象做Dequeue操作。
我使用锁来处理并发。我的代码似乎一直运行良好,但昨天发生了奇怪的事情。我从消费者线程得到的数据与我产生的数据不同:数组长度错误、重复数组……这是线程安全保护失败造成的吗?
在我看来,并发只会导致数据丢失。
我在这里的第一篇文章,请多多包涵。