线程 被定义为程序的执行路径。每个线程都定义了一个独特的控制流。如果您的应用程序涉及到复杂的和耗时的操作,那么设置不同的线程执行路径往往是有益的,每个线程执行特定的工作。
线程是轻量级进程。一个使用线程的常见实例是现代操作系统中并行编程的实现。使用线程节省了 CPU 周期的浪费,同时提高了应用程序的效率。
演示代码:
class KillingThreads
{
long fSum1 = 0;
long fSum2 = 2;
//声明线程
Thread Threading1;
Thread Threading2;
static void Main(string[] args)
{
KillingThreads myKillingThreads = new KillingThreads();
myKillingThreads.StartThread();
//cons
Console.ReadLine();
}
private void StartThread()
{
//实例化ThreadStart
ThreadStart myThreadStart1 = new ThreadStart(FibonnacciSeries1);
//实例化线程
Threading1 = new Thread(myThreadStart1);
Threading1.Name = "ThreadA";
ThreadStart myThreadStart2 = new ThreadStart(FibonnacciSeries2);
Threading2 = new Thread(new ThreadStart(myThreadStart2));
Threading2.Name = "ThreadB";
Threading1.Start(); //启动第1个线程
Threading2.Start(); //启动第2个线程
Threading1.Join();//暂停线程Threading1
Threading2.Join();//暂停线程Threading2
}
private void FibonnacciSeries1()
{
try
{
for (int i = 0; i < 10; i++)
{
lock (this)
{
//挂起线程1秒
Thread.Sleep(1000);
fSum1 += i;
if (i > 5)
//终止线程Threading1
Threading1.Interrupt();
Console.WriteLine(Thread.CurrentThread.Name +
" : " + " 目前总和为 = " + fSum1);
}
}}
catch (ThreadInterruptedException)
{
Console.WriteLine(Thread.CurrentThread.Name + " 终止Threading1");
}
}
private void FibonnacciSeries2()
{
try
{
lock (this)
{
for (int i = 0; i < 10; i++)
{
Thread.Sleep(1000);
fSum2 += i;
Console.WriteLine(Thread.CurrentThread.Name +
" : " + " 目前总和为 = " + fSum2);
}
}
}
catch (ThreadInterruptedException)
{
Console.WriteLine(Thread.CurrentThread.Name + " 终止Threading2");
}}}
执行结果: