线程 :程序的执行路径;线程是轻量级进程,使用线程节省了CPU周期的浪费,同时提高了应用程序的效率;
线程是一个程序内部的顺序控制流,一个进程里面有一个主方法main方法。是一个进程里面不同的执行路径;
先看下例子:
using System;
using System.Threading;
namespace MultithreadingApplication
{
class ThreadCreationProgram
{
public static void CallToChildThread()
{
Console.WriteLine("Child thread starts");
//线程暂停 5秒
//Thread.Sleep(5000);
Console.WriteLine("Child thread resumes");
}
static void Main(string[] args)
{
Console.WriteLine("In Main:Creating the Child thread");
Thread childThread = new Thread(new ThreadStart(CallToChildThread));
childThread.Start(); //开始线程
//childThread.Abort(); //中止线程
Console.ReadKey();
}
}
}
多线程实践:
Thread wordthread = new Thread(WordThread);
wordthread.Start();
Thread winthread = new Thread(WinThread);
winthread.Start();
Thread excelthread = new Thread(ExcelThread);
excelthread.Start();
...
wordthread.Join(); //阻塞调用线程,直到该线程终止为止
winthread.Join();
excelthread.Join();
...
private void WordThread()
{
Word判分的方法;
}
private void WinThread()
{
Win判分的方法;
}
private void ExcelThread()
{
Excel判分的方法;
}
...
我用单线程也可以实现功能,那为什么要用多线程?
多线程出现的原因:为解决负载均衡问题,充分利用CPU资源,提高CPU的使用率,采用多线程的方式去同时完成几件事情而不相互干扰。为了处理大量的IO操作时或处理需要花费大量的时间等问题;
多线程的好处:
1、使用线程可以把占据时间长的程序中的任务放到后台处理;
2、用户界面更加吸引人,这样比如用户点击了一个按钮去触发某件事件的处理,可以弹出一个进度条来显示处理的进度;
3、提高程序的运行效率;
多线程的缺点:
1、大量线程会影响性能,因为操作系统需要在它们之间切换;
2、更多的线程需要更多的内存空间,占据较多内存空间;
3、线程中止需要考虑对程序运行的影响;
4、通常块模型数据在多个线程间共享,需要防止线程死锁情况的发生;