随笔分类 -  B├ 专题-多线程

semaphore
摘要:// Semaphore是System.Threading下的类,限制可同时访问某一资源或资源池的线程数。 1 using System; 2 using System.Threading; 3 4 namespace testSemaphore 5 { 6 //class Program 7 // 阅读全文

posted @ 2020-05-21 16:00 jshchg 编辑

.NET 中使用 Mutex 进行跨越进程边界的同步
摘要:转载至:.NET 中使用 Mutex 进行跨越进程边界的同步 Mutex 是 Mutual Exclusion 的缩写,是互斥锁,用于防止两个线程同时对计算机上的同一个资源进行访问。不过相比于其他互斥的方式,Mutex 能够跨越线程边界。 本文内容 Mutex 是什么? 简单的 Mutex(不能跨进 阅读全文

posted @ 2019-10-16 16:54 jshchg 编辑

C# 基础回顾: volatile 关键字
摘要:有些人可能从来没看到过这个关键字,这也难怪,因为这个关键字并不常用。那这个关键字到底有什么用呢? 我在网上搜索这个关键字的时候,发现很多朋友都有一个错误的认识 认为这个关键字可以防止并发争用(有点类似 lock 的赶脚)。 volatile 作用重定义 volatile 中文解释是“可变的”,MSD 阅读全文

posted @ 2019-10-14 16:28 jshchg 编辑

volatile 关键词
摘要:volatile 关键字指示一个字段可以由多个同时执行的线程修改。 出于性能原因,编译器,运行时系统甚至硬件都可能重新排列对存储器位置的读取和写入。 声明了 volatile 的字段不进行这些优化。这样可以确保该字段在任何时间呈现的都是最新的值。 volatile 关键字可应用于以下类型的字段: 引 阅读全文

posted @ 2019-10-14 15:07 jshchg 编辑

C#线程池 ThreadPool
摘要:线程池初始化时是没有线程的,线程池里的线程的初始化与其他线程一样,但是在完成任务以后,该线程不会自行销毁,而是以挂起的状态返回到线程池。直到应用程序再次向线程池发出请求时,线程池里挂起的线程就会再度激活执行任务。这样既节省了建立线程所造成的性能损耗,也可以让多个任务反复重用同一线程,从而在应用程序生存期内节约大量开销。 阅读全文

posted @ 2019-10-13 15:40 jshchg 编辑

EventWaitHandle 第一课
摘要:本篇通过一个列子使用EventWaitHandle实现两个线程的同步。请参看下面的列子。 阅读全文

posted @ 2019-10-13 13:37 jshchg 编辑

Monitor 实现阻塞队列 + 生产消费者实例
摘要:转载至 https://www.codeproject.com/Articles/28785/Thread-synchronization-Wait-and-Pulse-demystified 阅读全文

posted @ 2019-09-12 16:27 jshchg 编辑

C#多线程代码示例
摘要:using System; using System.Threading; namespace MultiThreadDemo { class Program { public static void threadfunc() { try { Console.WriteLine("Child thr 阅读全文

posted @ 2019-09-12 15:46 jshchg 编辑

导航