代码改变世界

随笔分类 -  多线程编程

NET多线程探索-互斥锁,信号量,事件(小新和拆弹部队友情演出)

2012-03-22 17:14 by 海不是蓝, 2419 阅读, 收藏, 编辑
摘要: mutex互斥锁-不准确的时钟概念性的东西: 互斥锁是一个互斥的同步对象,一个时间只有一个线程可以获取它。 前一篇文章中的时钟程序我们这里用Mutex互斥锁来实现。class Program{ static void Main(string[] args) { Clock C = new Clock(); C.RunClock(1); Console.Read(); }}public class Clock{ public Mutex Mtx = new Mutex(); //开始运行时钟,输入运行分钟 public... 阅读全文

NET多线程探索-线程同步和通信

2012-03-20 16:53 by 海不是蓝, 2295 阅读, 收藏, 编辑
摘要: NET中各种线程同步方法 在NET多线程开发中,有时候需要多个线程协调工作,完成这个步骤的过程称为“同步”。 使用同步的主要原因: 1.多个线程访问同一个共享资源。 2.多线程写入文件时保证只有一个线程使用文件资源。 3.由事件引发线程,线程等待事件,需要挂起线程。 NET中线程同步常见的几种方法: 1.lock lock 确保当一... 阅读全文

NET多线程探索-NET线程基础知识点

2012-03-19 13:40 by 海不是蓝, 689 阅读, 收藏, 编辑
摘要: 前台线程和后台线程前台线程:当应用程序结束的时候,前台线程如果没有完成任务,那么前台线程就不会结束。除非你强行结束应用程序进程中所有前台线程。前台线程适合必须执行完的任务。 后台线程:当应用程序结束的时候后台线程会被CLR强行结束,不会抛出异常。示例:static void Main(string[] args){ Thread t = new Thread(Test); t.IsBackground = true; //这里线程是后台线程,应用程序马上结束 //假如是前台线程,大约5秒以后结束 t.Start(); Console.WriteLine("A... 阅读全文