摘要: C#中 Mutex 类也是用于线程同步操作的类,例如,当多个线程同时访问一个资源时保证一次只能有一个线程访问资源。在 Mutex 类中,WaitOne() 方法用于等待资源被释放, ReleaseMutex() 方法用于释放资源。WaitOne() 方法在等待 ReleaseMutex() 方法执行 阅读全文
posted @ 2021-07-05 15:17 来自金沙江的小鱼 阅读(182) 评论(0) 推荐(0) 编辑
摘要: 在 C# 中 Monitor 类的命名空间是 System.Threading,它的用法要比 lock 的用法复杂一些,但本质是一样的。使用 Monitor 类锁定资源的代码如下。 Monitor.Enter(object);try{ //临界区代码}finally{ Monitor.Exit(ob 阅读全文
posted @ 2021-07-05 14:38 来自金沙江的小鱼 阅读(68) 评论(0) 推荐(0) 编辑
摘要: 前面学习过程中,曾经联系过使用sleep 方法能控制线程的暂停时间,从而改变多个线程之间的先后顺序,但每次调用线程的结果是随机的。线程同步的方法是将线程资源共享,允许控制每次执行一个线程,并交替执行每个线程。 在 C# 语言中实现线程同步可以使用 lock 关键字和 Monitor 类、Mutex 阅读全文
posted @ 2021-07-05 13:52 来自金沙江的小鱼 阅读(345) 评论(0) 推荐(0) 编辑
摘要: 在学习ThreadStart时,做过2个线程的练习-输出奇数和偶数,每次结果不一样,说明这两个线程随机的交替进行。如果希望控制输出顺序,就要定义优先级。 在 C# 中线程的优先级使用线程的 Priority 属性设置即可,默认的优先级是 Normal。在设置优先级后,优先级高的线程将优先执行。但不能 阅读全文
posted @ 2021-07-05 12:28 来自金沙江的小鱼 阅读(279) 评论(0) 推荐(0) 编辑
摘要: 与前面一篇学习的ThreadStart不同,ParameterizedThreadStart可以带参数。 在 C# 语言中使用 ParameterizedThreadStart 创建进程,首先需要创建 ParameterizedThreadStart 委托的实例,然后再创建 Thread 类的实例。 阅读全文
posted @ 2021-07-05 09:40 来自金沙江的小鱼 阅读(112) 评论(0) 推荐(0) 编辑
摘要: 前面的练习时显示1-10的偶数,这是一个单线程,接下来实验一下双线程,在前一个练习基础上把数据范围扩大一下。 新建一个控制台项目,用两个线程分别显示偶数和奇数。 完整代码如下 using System;using System.Threading;namespace ThreadStart练习2{ 阅读全文
posted @ 2021-07-05 08:32 来自金沙江的小鱼 阅读(42) 评论(0) 推荐(0) 编辑