C# ThreadPool 线程池

线程 被定义为程序的执行路径。每个线程都定义了一个独特的控制流。如果您的应用程序涉及到复杂的和耗时的操作,那么设置不同的线程执行路径往往是有益的,每个线程执行特定的工作。

线程是轻量级进程。一个使用线程的常见实例是现代操作系统中并行编程的实现。使用线程节省了 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");

          }}}

执行结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值