描述如下: Start():启动线程; Sleep(int):静态方法

时间:2021-12-14 07:56:09

什么是进程?
当一个措施开始运行时,它就是一个进程,进程包孕运行中的措施和措施所使用到的内存和系统资源。
而一个进程又是由多个线程所构成的。

什么是线程?
线程是措施中的一个执行流,每个线程都有本身的专有寄存器(栈指针、措施计数器等),但代码区是共享的,即差此外线程可以执行同样的函数。

什么是多线程?
多线程是指措施中包罗多个执行流,即在一个措施中可以同时运行多个差此外线程来执行差此外任务,也就是说允许单个措施创建多个并行执行的线程来完成各自的任务。

多线程的好处:
可以提高CPU的操作率。在多线程措施中,一个线程必需期待的时候,CPU可以运行其它的线程而不是期待,这样就大大提高了措施的效率。

多线程的倒霉方面:
线程也是措施,所以线程需要占用内存,线程越多占用内存也越多;
多线程需要协调和打点,所以需要CPU时间跟踪线程;
线程之间对共享资源的访谒会彼此影响,必需解决竞用共享资源的问题;
线程太多会导致控制太庞大,最终可能造成很多Bug;

接下来将对C#编程中的多线程机制进行探讨。为了省去创建GUI那些繁琐的法式,更清晰地迫近线程的素质,接下来的所有措施都是控制台措施,措施最后的Console.ReadLine()是为了使措施半途停下来,以便看清楚执行过程中的输出。

示例:

using System;

using System.Threading;

namespace Test
{
    class TestThread
    {
        private static void FirstThreadFun()
        {
            for (int i = 0; i < 10; i++)
            {
                Console.WriteLine(Thread.CurrentThread.Name + "   i =  " + i);
                
            }
            Console.WriteLine(Thread.CurrentThread.Name + " 执行完毕");
        }

        static void Main(string[] args)
        {
            //措施挪用了Main()函数时,就起动了一个进程,同时也启动了一个线程[这个线程就是主线程].
            Thread.CurrentThread.Name = "MainThread";
             
            //创建第一个线程
            Thread firstThread = new Thread(new ThreadStart(TestThread.FirstThreadFun));
            //取名为 firstThread
            firstThread.Name = "firstThread";

            for (int z = 0; z < 20; z++)
            {
                if (z == 10)
                {
                    firstThread.Start();
                    firstThread.Join();
                }
                else
                {
                    Console.WriteLine(Thread.CurrentThread.Name + "   z =  " + z);
                }
            }
            Console.Read();
        }
    }

}

运行功效:

描述如下: Start():启动线程; Sleep(int):静态方法

总结:

1.任何措施在执行时,,至少有一个主线程。