摘要: C# 多线程的死锁 一、死锁简介: 在多道程序设计环境下,多个进程可能竞争一定数量的资源,。一个进程申请资源,如果资源不可用,那么进程进入等待状态。如果所申请的资源被其他等待进程占有,那么该等待的进程有可能无法改变状态,这种情况下称之为死锁。 二、死锁条件 死锁的四个条件: 1.非抢占:资源不能被抢 阅读全文
posted @ 2021-05-21 19:26 码农阿亮 阅读(548) 评论(0) 推荐(0) 编辑
摘要: 多线程的几个相关案例 案例一: 代码: public static void Test2() { for (int i = 0; i < 10; i++) { Task.Factory.StartNew(() => Console.WriteLine($"{Thread.CurrentThread. 阅读全文
posted @ 2021-05-21 18:55 码农阿亮 阅读(213) 评论(0) 推荐(0) 编辑
摘要: Parallel.For()和Parallel.For<TLocal>() 一、简介: Parallel类提供了数据和任务的并行性;Paraller.For()方法类似于C#的for循环语句,也是多次执行一个任务。使用Paraller.For()方法,可以并行运行迭代,迭代的顺序没有定义。在For( 阅读全文
posted @ 2021-05-21 17:26 码农阿亮 阅读(177) 评论(0) 推荐(1) 编辑
摘要: 复杂多线程环境下使用读写锁同步写入文件 代码一: class Program { static int LogCount = 1000; static int SumLogCount = 0; static int WritedCount = 0; static int FailedCount = 阅读全文
posted @ 2021-05-21 15:49 码农阿亮 阅读(204) 评论(0) 推荐(0) 编辑
摘要: C#使用读写锁解决多线程并发 一、简介: 在开发程序的过程中,难免少不了写入错误日志这个关键功能。实现这个功能,可以选择使用第三方日志插件,也可以选择使用数据库,还可以自己写个简单的方法把错误信息记录到日志文件。现在我们来讲下最后一种方法: 在选择最后一种方法实现的时候,若对文件操作与线程同步不熟悉 阅读全文
posted @ 2021-05-21 14:30 码农阿亮 阅读(692) 评论(1) 推荐(0) 编辑