读书人

缓存底层有锁吗?可以解决并发有关问题

发布时间: 2013-09-12 22:07:00 作者: rapoo

缓存底层有锁吗?可以解决并发问题?有空闲的人员帮研究研究..


public static bool TryGetValue(string key, out List<Class> outValue)
{

if (HttpRuntime.Cache[key] != null)
{
outValue = (List<Class>)HttpRuntime.Cache[key];
return true;
}
else
{
outValue = null;
return false;
}
}


以上代码在并发的时候会不会出现问题,出现的概率高不高。。
比如 线程一读取Cache刚好不为空进入取HttpRuntime.Cache[key],因为HttpRuntime.Cache不稳定或被其他线程更改,导致刚好此时Cache[key]为Null,那么线程一就发生空异常
如果会出现并发的话,那要如何解决。。。。
另外.Net 4.0 System.Runtime.Caching 是否已经内置了这类的解决方案。。。
有空闲的人员帮研究研究..
[解决办法]
引用:
Quote: 引用:

这个你不用担心。
HttpRuntime.Cache 对象是线程安全的。
在.NET 4.0 中 MemoryCache 对象也是线程安全的。是脱离web的缓存解决方案。

那我上面说的那个会出现吗?

不会出现。既然它是线程安全的,就不会出现你所说的问题。

读书人网 >asp.net

热点推荐