C#多线程 一个缓冲队列,一个生产者线程,一个消费者线程,这两个线程同时操作这个队列,必须加互斥锁吗

2025-02-25 11:13:51
推荐回答(2个)
回答1:

加互斥锁的目的,是解决多线程访问同一资源而产生不可预期的异常,那么你现在是一个线程只负责插入,另一线程负责查询和删除,查询和删除跟插入没有关系的话,那么显然是不需要线程锁的,你要是问隐患的话,那么由于多线程或者多用户的原因,频繁操作几张相关表,可能造成数据库的表死锁。

回答2:

如果你是用的队列不是线程安全的, 那么会存在隐患
如果你的.net framework>=4的话 系统提供了线程安全的队列 System.Collections.Concurrent.ConcurrentQueue