首页新闻找找看学习计划

session Reader/Writer的锁机制

0
悬赏园豆:20 [已解决问题] 解决于 2017-11-19 10:25

asp.net session 中有Reader/Writer的锁机制.

我想问下如何知道请求被阻塞是因为session被锁而产生的呢?

我通过dump  w3wp 还是看不出里面有被锁的情况?

不知道园友们有证明是session被锁的情况吗?

或者有什么思路吗?

S-Roc的主页 S-Roc | 初学一级 | 园豆:12
提问于:2015-01-07 12:17
< >
分享
最佳答案
0

Reader/Writer的锁机制, 一个是写锁定, 一个是读锁定。  读锁定阻塞一个写锁定 但不会阻塞读锁定;而写锁定会阻塞所有的读写锁定。你可以搞两个框架用同一个页面去写同个session试试。  一个要等另一个完成才开始写。 这个是排队的, 你应该可以看得到。 

收获园豆:20
问天何必 | 老鸟四级 |园豆:3291 | 2015-01-07 17:08

你好,现象是可以看到。我想看看内在变化。我通过dump  w3wp已经找到了等待的线程。通过查看线程的调用栈,也找到栈顶的方法参数中指向了一个注册表句柄:

0:024> !handle 00000002  f
Handle 00000002
  Type             Key
  Attributes       0
  GrantedAccess    0:
         None
         None
  HandleCount      0
  PointerCount     0
  Name             \REGISTRY\MACHINE\SYSTEM\ControlSet001\Control\SESSION MANAGER

但也只能到这里,但我还是不能说明就因为这个指向也导致的阻塞。希望能多给点指点 ,谢谢

S-Roc | 园豆:12 (初学一级) | 2015-01-07 17:23
其他回答(1)
0

请求被阻塞 跟session有什么关系?

吴瑞祥 | 园豆:28665 (高人七级) | 2015-01-07 12:29

因为一个会话是独占一个session的,当在一个会话中发生多个请求时,这些请求采用了session的锁机制就会,每次只执行一个请求,执行完一个在执行下一个的

支持(0) 反对(0) S-Roc | 园豆:12 (初学一级) | 2015-01-07 13:54
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册