2012年11月23日

asp.net mvc源码分析-OutputCache

摘要: 在mvc中有一个相对比较独立的类OutputCacheAttribute,一看它的名字我们就知道应该与什么缓存有关了吧。public class OutputCacheAttribute : ActionFilterAttribute, IExceptionFilter 在这个类中涉及到两个重要的东西OutputCacheParameters缓存配置、ObjectCache缓存的管理方式,这两个主要是用来干什么的我们后面再说吧。OutputCacheAttribute继承于ActionFilterAttribute特性,那么我们就来看看它那4个方法是怎么实现的吧: public ... 阅读全文

posted @ 2012-11-23 18:21 dz45693 阅读(4870) 评论(7) 推荐(1) 编辑

php Collection类的设计

摘要: 用。net开发已经很多年了,最近接触到php,发现php也很好玩。不过发现它里面没有集合Collection类,只有数组,并且数组很强。这里我用数组来包装成一个集合Collection,代码如下:class Collection{ private $_members=array(); public function addItem($obj,$key=null) { if($key) { if(isset($this->_members[$key])) { throw new exception("Key \"$key\" already in use!&q 阅读全文

posted @ 2012-11-23 08:49 dz45693 阅读(3218) 评论(6) 推荐(3) 编辑

减小锁定的粒度:C#实现基于关键字(key)的锁定

摘要: 问题描述最近需要实现一个API,方法签名(的抽象版本)类似于void Update(string id)API将在多线程环境下被调用,需满足:如果多个调用线程传入相同的id,则它们必须被串行化——一个线程工作,其他线程阻塞,前一个线程调用完毕后,后一个线程才开始工作,依此类推。若传入的id不同,则各线程可并行执行。场景与数据库的行锁定非常相似——锁定对于更新相同的行的多个请求是互斥的,而更新不同的行则可同时进行。不过这回我们没有数据库的帮忙,同时,程序非常的小(其实是客户端程序),所以我们希望解决方案也非常小巧。基本思路说道多线程串行化,立刻想到的就是锁,但是如果简单的 lock (someG 阅读全文

posted @ 2012-11-23 08:45 dz45693 阅读(6562) 评论(0) 推荐(0) 编辑

导航