iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >C#多线程有哪些优缺点
  • 653
分享到

C#多线程有哪些优缺点

2023-06-17 23:06:15 653人浏览 安东尼
摘要

这篇文章主要为大家展示了“C#多线程有哪些优缺点”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“C#多线程有哪些优缺点”这篇文章吧。一、C#多线程相关的基本概念进程:当一个程序开始运行时,它就是一

这篇文章主要为大家展示了“C#多线程有哪些优缺点”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“C#多线程有哪些优缺点”这篇文章吧。

一、C#多线程相关的基本概念

进程:当一个程序开始运行时,它就是一个进程,进程包括运行中的程序和程序所使用到的内存和系统资源。而一个进程又是由多个线程所组成的。

线程:线程是程序中的一个执行流,每个线程都有自己的专有寄存器(栈指针、程序计数器等),但代码区是共享的,即不同的线程可以执行同样的函数。

多线程:多线程是指程序中包含多个执行流,即在一个程序中可以同时运行多个不同的线程来执行不同的任务,也就是说允许单个程序创建多个并行执行的线程来完成各自的任务。

静态属性:这个类所有对象所公有的属性,不管你创建了多少个这个类的实例,但是类的静态属性在内存中只有一个。

二、C#多线程的优劣

优点:可以提高CPU的利用率。在多线程程序中,一个线程必须等待的时候,CPU可以运行其它的线程而不是等待,这样就大大提高了程序的效率。

缺点:线程也是程序,所以线程需要占用内存,线程越多占用内存也越多;

多线程需要协调和管理,所以需要CPU时间跟踪线程;

线程之间对共享资源的访问会相互影响,必须解决竞用共享资源的问题;

线程太多会导致控制太复杂,最终可能造成很多Bug;

三、控制线程的类和方法

类:using System.Threading;  Thread类

Thread类的方法:Start():启动线程;

Sleep(int):静态方法,暂停当前线程指定的毫秒数;

Abort():通常使用该方法来终止一个线程;

Suspend():该方法并不终止未完成的线程,它仅仅挂起线程,以后还可恢复;

Resume():恢复被Suspend()方法挂起的线程的执行。

四、如何操纵一个线程

using System;  using System.Threading;   namespace ThreadTest  {           public class Alpha       {                   public void Beta()               {                        while (true)                            {                                 Console.WriteLine("Alpha.Beta is running in its own thread.");                  }                }          }       public class Simple       {              public static int Main()              {                        Console.WriteLine("Thread Start/Stop/Join Sample");                 Alpha oAlpha = new Alpha();                  //这里创建一个线程,使之执行Alpha类的Beta()方法                 Thread oThread = new Thread(new ThreadStart(oAlpha.Beta));                oThread.Start(); // 程序运行的是Alpha.Beta()方法                 while (!oThread.IsAlive)                   Thread.Sleep(1);  //让主线程停1ms                      oThread.Abort();  //终止线程oThread                     oThread.Join();  //使主线程等待,直到oThread线程结束。可以指定一个int型的参数作为等待的最长时间                  Console.WriteLine();                    Console.WriteLine("Alpha.Beta has finished");                 try                          {                           Console.WriteLine("Try to restart the Alpha.Beta thread");                    oThread.Start();                         }                       catch (ThreadStateException)                      {                        Console.Write("ThreadStateException trying to restart Alpha.Beta. ");                    Console.WriteLine("Expected since aborted threads cannot be restarted.");                       Console.ReadLine();                 }                       return 0;           }           }  }

五、Thread.ThreadState 属性

Aborted:线程已停止;

AbortRequested:线程的Thread.Abort()方法已被调用,但是线程还未停止;

Background:线程在后台执行,与属性Thread.IsBackground有关;不妨碍程序的终止

Running:线程正在正常运行;

Stopped:线程已经被停止;

StopRequested:线程正在被要求停止;

Suspended:线程已经被挂起(此状态下,可以通过调用Resume()方法重新运行);

SuspendRequested:线程正在要求被挂起,但是未来得及响应;

Unstarted:未调用Thread.Start()开始线程的运行;

WaitSleepJoin:线程因为调用了Wait(),Sleep()或Join()等方法处于封状态;

六、C#多线程的优先级

由高到低分别是Highest,AboveNORMal,Normal,BelowNormal,Lowest;系统默认为ThreadPriority.Normal

指定优先级的代码:myThread.Priority=ThreadPriority.Lowest;

以上是“C#多线程有哪些优缺点”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网精选频道!

--结束END--

本文标题: C#多线程有哪些优缺点

本文链接: https://www.lsjlt.com/news/294188.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C#多线程有哪些优缺点
    这篇文章主要为大家展示了“C#多线程有哪些优缺点”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“C#多线程有哪些优缺点”这篇文章吧。一、C#多线程相关的基本概念进程:当一个程序开始运行时,它就是一...
    99+
    2023-06-17
  • python中多线程的优缺点有哪些
    本篇文章给大家分享的是有关python中多线程的优缺点有哪些,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。python的数据类型有哪些python的数据类型:1. 数字类型,包...
    99+
    2023-06-14
  • C#多线程的知识点有哪些
    这篇文章主要介绍“C#多线程的知识点有哪些”,在日常操作中,相信很多人在C#多线程的知识点有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C#多线程的知识点有哪些”的疑惑有所帮助!接下来,请跟着小编一起来...
    99+
    2023-06-17
  • C++多线程测试要点有哪些
    这篇文章主要介绍“C++多线程测试要点有哪些”,在日常操作中,相信很多人在C++多线程测试要点有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C++多线程测试要点有哪些”的疑惑有所帮助!接下来,请跟着小编...
    99+
    2023-06-17
  • 免费双线vps有哪些优点和缺点
    免费双线VPS的优点和缺点如下:优点:1. 免费:免费双线VPS不需要支付任何费用,对于个人用户或者小型网站来说非常合适。2. 双线...
    99+
    2023-08-19
    免费双线vps vps
  • 服务器多线程的优点有哪些
    这篇文章主要介绍“服务器多线程的优点有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“服务器多线程的优点有哪些”文章能帮助大家解决问题。尽管面临很多挑战,多线程有一些优点使得它一直被使用。这些优点...
    99+
    2023-06-17
  • c语言malloc函数有哪些优缺点
    malloc函数是C语言中用于动态分配内存的函数。它的主要优点和缺点如下:优点:1. 动态分配内存:malloc函数可以根据需要动态...
    99+
    2023-10-12
    c语言
  • memSQL有哪些优缺点
    MemSQL的优点包括:1. 高性能:MemSQL是一个内存中的数据库,可以提供极高的读写性能和低延迟查询。它可以通过在内存中存储和...
    99+
    2023-09-13
    memSQL
  • TokuDB优缺点有哪些
    本篇内容主要讲解“TokuDB优缺点有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“TokuDB优缺点有哪些”吧! TokuD...
    99+
    2022-10-19
  • Mustache有哪些优缺点
    优点: 简单易用:Mustache的语法非常简单,易于学习和使用。 跨平台:Mustache是一种跨平台的模板引擎,可以用于多种编...
    99+
    2023-10-23
    Mustache
  • Docker有哪些优缺点
    今天小编给大家分享一下Docker有哪些优缺点的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。Docker解决的问题:由于不同...
    99+
    2023-06-27
  • java socket编程有哪些优缺点
    Java Socket编程的优点和缺点如下:优点:1. 简单易用:Java提供了Socket类和ServerSocket类来实现网络...
    99+
    2023-08-09
    java
  • 扬州双线服务器有哪些优缺点
    优点:1. 可以提供更快的网站访问速度,因为双线服务器可以同时连接国内和国际网络,避免了因网络延迟造成的网站访问缓慢的问题。2. 可...
    99+
    2023-06-05
    扬州双线服务器 双线服务器 服务器
  • Dubbo线程池有哪些优点
    本篇内容介绍了“Dubbo线程池有哪些优点”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1 基础知识1.1 DUBBO线程模型1.1.1 基...
    99+
    2023-06-15
  • Java流式编程有哪些优缺点
    Java流式编程的优点包括:1. 简化代码:流式编程能够将复杂的代码逻辑简化成一系列简洁的操作,提高代码的可读性和可维护性。2. 减...
    99+
    2023-10-10
    Java
  • asp编程语言有哪些优缺点
    优点:1. ASP是一种强大的服务器端脚本语言,能够处理大量的并发请求。2. ASP语言易于学习,因为它使用了一些与C和Visual...
    99+
    2023-06-14
    asp编程
  • LINQ存储过程有哪些优缺点
    这篇文章主要讲解了“LINQ存储过程有哪些优缺点”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“LINQ存储过程有哪些优缺点”吧!一、何谓存储过程?存储过程者,乃是存放在数据库中的一个脚本也。...
    99+
    2023-06-17
  • MemSQL的优缺点有哪些
    MemSQL是一种内存数据库管理系统,它具有以下优点和缺点: 优点: 高性能:MemSQL是基于内存的数据库,能够提供快速的数据读...
    99+
    2023-10-24
    MemSQL
  • angularjs的优缺点有哪些
    这篇文章主要介绍angularjs的优缺点有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!谈到流行的开源web app框架,那一定少不了angularjs,angularjs能够解决阻碍单页应用程序开发的各种挑战...
    99+
    2023-06-14
  • muduo库有哪些优缺点
    muduo库是一个基于C++的高性能网络编程库,它主要用于开发服务器应用程序。以下是muduo库的一些优点和缺点:优点:1. 高性能...
    99+
    2023-08-24
    muduo
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作