线程
讲多线程之前,我们先讲线程。
C#中的线程类叫Thread,主要用来创建或控制线程。
先上个例子
static void Main(string[] args)
{
Thread thread = new Thread(ThreadTest);
//设置线程名称
thread.Name = "测试线程";
//调用Start方法启动线程
thread.Start();
Console.ReadKey();
}
public static void ThreadTest()
{
Console.WriteLine("Name:"+Thread.CurrentThread.Name);
}
new了一个线程,传入了一个委托参数ThreadTest()。
然后给线程设置了一个名称
最后调用线程的Start()方法,启动线程。
委托方法中输出了线程的名称。
多线程,其核心价值是为了在同一时间段内完成多个任务。
结合现实场景来看,就是火车站售票厅的售票窗口了。如果只有一个售票窗口,以我国人口基数来看,显然是不现实的。所以,多个售票窗口就满足多线程的概念,同一个时间段,处理多个任务。
多线程也是有缺点的,每开辟一个新的线程,势必要占用一定的内存空间,开辟的越多,占用的内存也就越多。
线程的概念基本上大家应该了解了,接下来通过实际例子来深入了解线程在实际操作过程中可能遇到的问题。
例子
我们用之前说到的火车站售票窗口,来讲多线程的第一个问题。并发访问共享数据问题。假如,一个车次有100张可