asp.net 并发 缓存 list

好想知道个问题:

一个web项目中,我在服务器端缓存一个list,用来存放用户请求的过来的id(如/test.aspx?id=3466),id是随机。
如果不存在,就在缓存的list里面添加这个id,并提示用户成功,
如果存在,就提示用户已存在。

我想知道,如果在相当高的并发量下,这个缓存的list下有没有可能会出现重复的值?

如果存在这样的问题,有没有其他的好的解决方案。

List对象不是线程安全的,需要用lock锁定后操作,会阻止其他请求直到释放锁。

img

参考

https://www.cnblogs.com/GreenLeaves/p/10092128.html

使用HashTable,把ID当做key,hashtable是线程安全的。

只能用锁吧

HTTP是无状态的,你的设想不可能实现,所以无所谓冲突

你好,
你现在最好的办法是使用.持有锁时,持有锁的线程可以再次获取和释放锁。任何其他线程都被阻止获取锁并等待直到锁被释放。