摘要:
实际生产中,可能由于需求的变化需要对数据库中的数据做统一的更新。这时由于项目已经上线好久时间,数据库中的数据也已经很多了。这时的更新操作如果一次执行,可能对数据库造成数据阻塞,给用户的浏览造成问题。比较好的做法是每更新一批数据后,就停顿一定的时间。 publicvoidProcessRequest(HttpContextcontext) { context.Response.ContentType ="text/html";Entitiesdb =newEntities();intpage = 1;while(true) {inttake = page * 1000;int 阅读全文
摘要:
在写代码时,习惯性的用了 lock(searchLock) { ....................... }刚开始也没发现有什么不妥,可后来发现效率上有点问题。原因是lock会在外面等直到占用的线程退出下一个线程才能进去,当有大批量的数据访问时容易造成阻塞。而Monitor.TryEnter无论有没有获取对象锁都会返回结果。于是将代码改为如下:if(Monitor.TryEnter(searchLock)) {try { obj =LinkService.Search(count, search);CacheHelper.AddGroup(searchG... 阅读全文