dotnet 锁和线程同步

📅 2023-09-20 🏷️ 👁️ 0 阅读
一、Monitor 以及 语法糖 lock 1、需要锁定引用类型,引用类型数据结构存在特殊的标记位,值类型每次都会被装箱成新对象 2、lock 反编译后是try finally 里面包围的 Monitor.Enter 和 Monitor.Release 二、重置事件 1、分为AutoResetEvent和ManualResetEvent 2、ManualResetEvent需要手动执行Reset(),不然下一次WaitOne无法锁定 3、AutoResetEvent不需要手动执行Reset(),手动执行似乎也无影响 4、带Slim后缀的对象性能更好 三、Semaphore 可以设定同时进入的线程数量 四、ReadWriteLock 1、同时多个读 2、同时一个写 3、同时仅仅一个可以升级为写锁
← 第一篇记录 redis 基础 →

评论 (0)

评论提交后需要审核通过才会显示

← 返回文章列表