随笔分类 -  C#

上一页 1 ··· 4 5 6 7 8 9 10 11 12 ··· 17 下一页
摘要:什么是优先级反转(翻转)优先级反转,是指在使用信号量时,可能会出现的这样一种不合理的现象,即: 高优先级任务被低优先级任务阻塞,导致高优先级任务迟迟得不到调度。但其他中等优先级的任务却能抢到CPU资源。-- 从现象上来看,好像是中优先级的任务比高优先级任务具有更高的优先权。具体来说:当高优先级任务正 阅读全文
posted @ 2022-01-05 04:03 小林野夫 阅读(274) 评论(0) 推荐(0) 编辑
摘要:进程切换(上下文切换)1、暂停当前运行进程,从运行状态变成其他状态。 2、调度另一个进程从就绪状态变成运行状态。 进程切换的要求切换前,保存进程上下文 切换后,恢复进程上下文快速切换快速切换 进程生命周期的信息 寄存器(PC,SP,.….)CPU状态内存地址空间 上下文切换的图示 进程控制块PCB: 阅读全文
posted @ 2022-01-03 01:00 小林野夫 阅读(944) 评论(0) 推荐(0) 编辑
摘要:OverView 同步基元分为用户模式和内核模式 用户模式:Iterlocked.Exchange(互锁)、SpinLocked(自旋锁)、易变构造(volatile关键字、volatile类、Thread.VolatitleRead|Thread.VolatitleWrite)、MemoryBar 阅读全文
posted @ 2022-01-01 23:43 小林野夫 阅读(2436) 评论(0) 推荐(0) 编辑
摘要:锁提供了线程安全三要素中的 有序性。二、SpinWait是同步锁的核心,而Thread是SpinWait的核心。 Spinwait结构 完成代码:SpinWait.cs (dot.net) SpinWait结构的核心代码 internal const int YieldThreshold = 10; 阅读全文
posted @ 2022-01-01 04:28 小林野夫 阅读(775) 评论(0) 推荐(0) 编辑
摘要:概念 原子操作(atomic action):也叫primitive(原语、基元),它是操作系统用语范畴。指由若干条指令组成的,用于完成一定功能的一个过程。 原语是由若干个机器指令构成的完成某种特定功能的一段程序,具有不可分割性·即原语的执行必须是连续的,在执行过程中不允许被中断。 操作系统只需在执 阅读全文
posted @ 2021-12-31 02:55 小林野夫 阅读(2227) 评论(0) 推荐(0) 编辑
摘要:其实Java并发框架的基石一共有两块,一块是本文介绍的CAS,另一块就是AQS,后续也会写博客介绍。 什么是CAS机制 CAS机制是一种数据更新的方式。在具体讲什么是CAS机制之前,我们先来聊下在多线程环境下,对共享变量进行数据更新的两种模式:悲观锁模式和乐观锁模式。 悲观锁更新的方式认为:在更新数 阅读全文
posted @ 2021-12-31 01:44 小林野夫 阅读(1229) 评论(0) 推荐(0) 编辑
摘要:System.Threading.Thread类 涉及到的类和枚举 Volatile 类Interlocked 类SpinLock 类SpinWait类Barrier 类ThreadLocal<T> 类ApartmentState 枚举ThreadPriority 枚举ThreadStart 类Th 阅读全文
posted @ 2021-12-29 20:14 小林野夫 阅读(1093) 评论(0) 推荐(0) 编辑
摘要:背景 为了确保在线程中声明特定类型的变量,在每个线程中的值都是唯一的,不受到其他线程对该变量读写的影响。也就是俗称的线程本地存储 (TLS),可用于存储对线程和应用程序域唯一的数据。 例如:主线程中声明了变量A ,只能由主线程进行读取和写入。子线程虽然可以使用变量A(相当于复制一个A,可以对该变量进 阅读全文
posted @ 2021-12-27 16:32 小林野夫 阅读(570) 评论(0) 推荐(0) 编辑
摘要:内存模型概述 MSDN:理论与实践中的 C# 内存模型 MSDN:理论与实践中的 C# 内存模型,第 2 部分 内存模型就是内存一致性模型。 以下内如来自维基百科 内存一致性模型列表 线性一致性(Linearizability)或严格一致性(Strict consistency):任何对一个内存位置 阅读全文
posted @ 2021-12-27 02:07 小林野夫 阅读(588) 评论(0) 推荐(0) 编辑
摘要:overview 同步基元分为用户模式和内核模式 用户模式:Iterlocked.Exchange(互锁)、SpinLocked(自旋锁)、易变构造(volatile关键字、volatile类、Thread.VolatitleRead|Thread.VolatitleWrite)、MemoryBar 阅读全文
posted @ 2021-12-27 02:06 小林野夫 阅读(700) 评论(2) 推荐(1) 编辑
摘要:转载自:https://gandalfliang.github.io/2019/01/15/loop-hoisting/ Loop Hoisting 在上篇文章中,提到 Loop Hoisting ,这是一个常见的编译器优化项。我们总是能通过汇编代码等低级语言来“窥探”代码实际是怎么“指示”硬件运行 阅读全文
posted @ 2021-12-26 17:56 小林野夫 阅读(222) 评论(0) 推荐(0) 编辑
摘要:CPU硬件有它自己的内存模型,不同的编程语言也有它自己的内存模型。 在 C# 的语言规范中 ECMA-334,对于Volatile关键字的描述: 15.5.4 Volatile fieldsWhen a field-declaration includes a volatile modifier, 阅读全文
posted @ 2021-12-26 17:50 小林野夫 阅读(148) 评论(0) 推荐(1) 编辑
摘要:背景 同步基元分为用户模式和内核模式 用户模式:Iterlocked.Exchange(互锁)、SpinLocked(自旋锁)、易变构造(volatile关键字、volatile类、Thread.VolatitleRead|Thread.VolatitleWrite)、MemoryBarrier。 阅读全文
posted @ 2021-12-26 17:09 小林野夫 阅读(1932) 评论(0) 推荐(2) 编辑
摘要:往袋子里面装苹果 错误案例示范 关于C#多线程的文章,大部分都在讨论线程的起停或者是多线程同步问题。多线程同步就是在不同线程中访问同一个变量(一般是线程工作函数外部的变量),众所周知在不使用线程同步的机制下,由于竟态的存在会使某些线程产生脏读或者是覆盖其它线程已写入的值(各种混乱)。而另外一种情况就 阅读全文
posted @ 2021-12-26 03:56 小林野夫 阅读(405) 评论(0) 推荐(0) 编辑
摘要:线程本地存储(TLS:Thread Local Storage) 线程本地存储(Thread Local Storage),字面意思就是专属某个线程的存储空间。变量大体上分为全局变量和局部变量,一个进程中的所有线程共享地址空间,这个地址空间被划分为几个固有的区域,比如堆栈区,全局变量区等,全局变量存 阅读全文
posted @ 2021-12-25 20:27 小林野夫 阅读(1170) 评论(0) 推荐(0) 编辑
摘要:1. 简介 1、延迟初始化出现于.NET 4.0,主要用于提高性能,避免浪费计算,并减少程序内存要求。也可以称为,按需加载。 2、从net 4.0开始,C#开始支持延迟初始化,通过Lazy关键字,我们可以声明某个对象为仅仅当第一次使用的时候,再初始化,如果一直没有调用,那就不初始化,省去了一部分不必 阅读全文
posted @ 2021-12-25 19:23 小林野夫 阅读(289) 评论(0) 推荐(0) 编辑
摘要:概述 线程主要学习什么,通过一个月的摸索、终于总结出来了:学习Thread类涉及到学习Thread类涉及到线程单元状态: ApartmentState、GetApartmentState\SetApartmentState内存屏障:VolatileWrite()、VolatileRead()、Mem 阅读全文
posted @ 2021-12-24 22:24 小林野夫 阅读(636) 评论(0) 推荐(2) 编辑
摘要:一、同步上下文(SynchronizationContext)概述 由来 多线程程序在.net框架出现之前就已经存在了。这些程序通常需要一个线程将一个工作单元传递给另一个线程。Windows程序以消息循环为中心,因此许多程序员使用这个内置队列来传递工作单元。每个想要以这种方式使用Windows消息队 阅读全文
posted @ 2021-12-19 00:36 小林野夫 阅读(1752) 评论(0) 推荐(1) 编辑
摘要:【原创】 本文只是个人笔记,很多错误,欢迎指出。 环境:vs2022 .net6.0 C#10 参考:https://blog.csdn.net/brook_shi/article/details/50803957 Await 就像一个一元运算符:它接受一个参数,一个可等待的("awaitable" 阅读全文
posted @ 2021-12-19 00:36 小林野夫 阅读(1613) 评论(1) 推荐(1) 编辑

上一页 1 ··· 4 5 6 7 8 9 10 11 12 ··· 17 下一页
原文链接:https://www.cnblogs.com/cdaniu/