当前位置:首页 > 科技  > 软件

C#实现多线程的几种方式,你知道几种?

来源: 责编: 时间:2024-05-11 09:21:46 324观看
导读前言多线程是C#中一个重要的概念,多线程指的是在同一进程中同时运行多个线程的机制。多线程适用于需要提高系统并发性、吞吐量和响应速度的场景,可以充分利用多核处理器和系统资源,提高应用程序的性能和效率。多线程常用

前言

多线程是C#中一个重要的概念,多线程指的是在同一进程中同时运行多个线程的机制。多线程适用于需要提高系统并发性、吞吐量和响应速度的场景,可以充分利用多核处理器和系统资源,提高应用程序的性能和效率。tZe28资讯网——每日最新资讯28at.com

多线程常用场景

  • CPU 密集型任务.
  • I/O 密集型任务.
  • 并发请求处理.
  • 大数据处理等.

什么是进程?

进程(Process)是计算机中的一个执行中的程序,它是对正在运行的程序的抽象。一个进程包括了程序的代码、数据、堆栈以及其他操作系统所需的资源。tZe28资讯网——每日最新资讯28at.com

图片图片tZe28资讯网——每日最新资讯28at.com

什么是线程?

线程(Thread)是进程中的一个执行单元,一个进程可以包含多个线程,它们共享进程的资源,但拥有独立的执行流程。tZe28资讯网——每日最新资讯28at.com

使用 Thread 类

public static void ThreadMethod()        {            var newThread = new Thread(WorkerMethod);            newThread.Start();            for (int i = 0; i < 8; i++)            {                Console.WriteLine($"ThreadMethod 主线程开始工作:{i}");                Thread.Sleep(100);            }        }                private static void WorkerMethod()        {            for (int i = 0; i < 8; i++)            {                Console.WriteLine($"WorkerMethod 辅助线程开始工作:{i}");                Thread.Sleep(100);            }        }

图片图片tZe28资讯网——每日最新资讯28at.com

使用 ThreadPool 类

public static void ThreadPoolMethod()        {            ThreadPool.QueueUserWorkItem(o => WorkerMethod());            for (int i = 0; i < 8; i++)            {                Console.WriteLine($"ThreadPoolMethod 主线程开始工作:{i}");                Thread.Sleep(100);            }        }                private static void WorkerMethod()        {            for (int i = 0; i < 8; i++)            {                Console.WriteLine($"WorkerMethod 辅助线程开始工作:{i}");                Thread.Sleep(100);            }        }

图片图片tZe28资讯网——每日最新资讯28at.com

使用 Task 类

public static void TaskMethod()        {            Task.Run(() => WorkerMethod());            for (int i = 0; i < 8; i++)            {                Console.WriteLine($"TaskMethod 主线程开始工作:{i}");                Task.Delay(100).Wait();            }        }                private static void WorkerMethod()        {            for (int i = 0; i < 8; i++)            {                Console.WriteLine($"WorkerMethod 辅助线程开始工作:{i}");                Thread.Sleep(100);            }        }

图片图片tZe28资讯网——每日最新资讯28at.com

使用 Parallel 类

public static void ParallelMethod()        {            Parallel.Invoke(WorkerMethod, WorkerMethodOther1, WorkerMethodOther2);        }                private static void WorkerMethod()        {            for (int i = 0; i < 8; i++)            {                Console.WriteLine($"WorkerMethod 辅助线程开始工作:{i}");                Thread.Sleep(100);            }        }        private static void WorkerMethodOther1()        {            for (int i = 0; i < 8; i++)            {                Console.WriteLine($"WorkerMethodOther1 辅助线程开始工作:{i}");                Thread.Sleep(100);            }        }        private static void WorkerMethodOther2()        {            for (int i = 0; i < 8; i++)            {                Console.WriteLine($"WorkerMethodOther2 辅助线程开始工作:{i}");                Thread.Sleep(100);            }        }

图片图片tZe28资讯网——每日最新资讯28at.com

GitHub开源地址

https://github.com/YSGStudyHards/DotNetGuide/blob/main/docs/DotNet/DotNetStudy.mdtZe28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-87994-0.htmlC#实现多线程的几种方式,你知道几种?

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 一个用Rust编写的开源代码编辑器-Zed:开箱即用的远程协作编程能力

下一篇: .NET Core 8 部署在 IIS 上的详细指南

标签:
  • 热门焦点
  • 5月安卓手机好评榜:魅族20 Pro夺冠

    性能榜和性价比榜之后,我们来看最后的安卓手机好评榜,数据来源安兔兔评测,收集时间2023年5月1日至5月31日,仅限国内市场。第一名:魅族20 Pro好评率:97.50%不得不感慨魅族老品牌还
  • 三言两语说透设计模式的艺术-简单工厂模式

    一、写在前面工厂模式是最常见的一种创建型设计模式,通常说的工厂模式指的是工厂方法模式,是使用频率最高的工厂模式。简单工厂模式又称为静态工厂方法模式,不属于GoF 23种设计
  • Automa-通过连接块来自动化你的浏览器

    1、前言通过浏览器插件可实现自动化脚本的录制与编写,具有代表性的工具就是:Selenium IDE、Katalon Recorder,对于简单的业务来说可快速实现自动化的上手工作。Selenium IDEKat
  • 谷歌KDD'23工作:如何提升推荐系统Ranking模型训练稳定性

    谷歌在KDD 2023发表了一篇工作,探索了推荐系统ranking模型的训练稳定性问题,分析了造成训练稳定性存在问题的潜在原因,以及现有的一些提升模型稳定性方法的不足,并提出了一种新
  • 使用LLM插件从命令行访问Llama 2

    最近的一个大新闻是Meta AI推出了新的开源授权的大型语言模型Llama 2。这是一项非常重要的进展:Llama 2可免费用于研究和商业用途。(几小时前,swyy发现它已从LLaMA 2更名为Lla
  • 重估百度丨“晚熟”的百度云,能等到春天吗?

    &copy;自象限原创作者|程心排版|王喻可2016年7月13日,百度云计算战略发布会在北京举行,宣告着百度智能云的正式启程。彼时的会场座无虚席,甚至排队排到了门外,在场的所有人几乎都
  • 自律,给不了Keep自由!

    来源 | 互联网品牌官作者 | 李大为编排 | 又耳 审核 | 谷晓辉自律能不能给用户自由暂时不好说,但大概率不能给Keep自由。近日,全球最大的在线健身平台Keep正式登陆港交所,努力
  • 华为开发者大会2023日程公开:开设鸿蒙HarmonyOS 4体验区

    IT之家 7 月 31 日消息,华为今日公布了 HDC.Together 开发者大会 2023 的详细日程。整场大会将于 8 月 4 日-6 日之间举行,届时将发布最新一代鸿蒙 H
  • 联想的ThinkBook Plus下一版曝光,键盘旁边塞个平板

    ThinkBook Plus 是联想的一个特殊笔记本类别,它在封面放入了一块墨水屏,也给人留下了较为深刻的印象。据有人爆料,联想的下一款 ThinkBook Plus 可能更特殊,它
Top