随笔分类 - 【0057】.Net并行和异步
摘要:序言 .net中实现异步有两种方式,第一种是多线程的方式,第二种是使用异步函数,其实在异步函数中使用的还是多线程的技术。 .net在System.Threading和System.Threading.Tasks这两个命名空间中提供了Thread,ThreadPool,和Task三个类来处理多线程的问
阅读全文
摘要:序言 单例 定时器 静态类 深拷贝 浅拷贝 线程安全集合 ConcurrentDictionary是.net4.0推出的一套线程安全集合里的其中一个,和它一起被发行的还有ConcurrentStack,ConcurrentQueue等类型, 它们的单线程版本(线程不安全的,Queue,Stack,D
阅读全文
摘要:序言 锁 1.Lock(属于Monitor的语法糖) lock 关键字是 C# 中最简单和最常用的锁机制,用于在代码块中获取对象的互斥锁,确保同一时间只有一个线程能够执行该代码块。 https://sharplab.io/ 2.Monitor Monitor 类提供了一种更灵活的同步机制,通过 Mo
阅读全文
摘要:序言 原子性 一.多线程的线程安全 多线程安全问题原因是在cpu执行多线程时,在执行的过程中可能随时切换到其他的线程上执行,当多个线程同时操作同一个变量时,如果不施加其他措施,可能导致错误数据的出现 二.Interlocked的特点 Interlocked是为多个线程共享的变量提供原子操作,这个类是
阅读全文
摘要:背景 在.Net领域领域中,多线程的处理大致经历了这么几个阶段: Thread→ThreadPool→委托的异步调用→Task→TaskFactory→Parallerl→异步编程模型(async和await)。 线程、进程、多线程 1.什么是线程?线程和进程的区别是什么? 进程是操作系统对一个正在
阅读全文