zoukankan      html  css  js  c++  java
  • .net mvc中session的锁机制

    今天遇到个奇怪的问题, 一个秒杀商品系统, 大量秒杀请求进来, 到了action居然是单线程执行! 这样产生的效果就是“这个系统好慢啊!!”。

    可是我没有加lock,为什么会变成单线程执行呢?

    找资料才知道, session有个锁机制。

    资料内容:

    和数据库的锁一样, 分共享锁和排它锁。

    共享锁占用时,排它锁必须等待,而另一个共享锁可以同事访问;

    排它锁占用时,其他所有锁都必须等待。

    两个锁的持续时间都是整个action走完才释放。类似于Repeatable以上的事务隔离级别。


    而我的实际测试结果是:

    无论是读还是写,都是排它锁占用!

    也就是说,只要用到session,哪怕在BaseController里仅仅读取, 最终action也是线性执行的。

    因此session是性能杀手。

  • 相关阅读:
    hdu 1260 Tickets
    hdu 4738 Caocao's Bridges(桥的最小权值+去重)
    找规律
    C语言快速排序
    数组的初始化方法
    C语言选择排序
    副本机制
    安装完Kali的后续操作
    Bool盲注
    Python中的列表
  • 原文地址:https://www.cnblogs.com/dengshaojun/p/9942929.html
Copyright © 2011-2022 走看看