首页 > 编程语言 >Task 异步编程

Task 异步编程

时间:2024-08-27 23:16:32浏览次数:13  
标签:异步 Task Console string void 编程 t1 线程

任务和线程的区别

在我们了解 Task 之前,如果我们要使用多核的功能可能就会自己来开线程,然而这种线程模型在. net 4.0 之后被一种称为基于“任务的编程模型” 所冲击,因为 task 会比 thread 具有更小的性能开销,不过大家肯定会有疑惑,任务和线程到底有什么区别?

1:任务是架构在线程之上的,也就是说任务最终还是要抛给线程去执行。
2:任务跟线程不是一对一的关系,比如开 10 个任务并不是说会开 10 个线程,这一点任务有点类似线程池,但是任务相比线程池有很小的开销和精确的控制。

方式 1:

private static void Main(string[] args)
{
    var t1 = new Task(() => TaskMethod("Task 1"));
    System.Console.WriteLine(t1.Status);
    t1.Start();
    System.Console.WriteLine(t1.Status);
    Task.WaitAll(t1);
    System.Console.WriteLine(t1.Status);
}
private static void TaskMethod(string v)
{
    System.Console.WriteLine(v);
}
D:\NutStoreCode\src\App>dotnet run
Created
WaitingToRun
Task 1
RanToCompletion

注:

任务的状态:
   Start 之前为: Created
   Start 之后为: WaitingToRun

方式 2:

private static void Main(string[] args)
{
    Task.Run(() => TaskMethod("Task 2"));
}

private static void TaskMethod(string v)
{
    System.Console.WriteLine(v);
}

方式 3:

private static void Main(string[] args)
{
    var t3 = Task.Factory.StartNew(() => TaskMethod("Task 3"));
    Task.WaitAll(t3); //等待所有任务结束
}

private static void TaskMethod(string v)
{
    System.Console.WriteLine(v);
}

参考地址 www.donet5.com

标签:异步,Task,Console,string,void,编程,t1,线程
From: https://www.cnblogs.com/zhuoss/p/18383718

相关文章

  • Datawhale X 李宏毅苹果书AI夏令营 Task1打卡
    3.1局部极小值与鞍点3.1.1临界点及其分类参数对于损失函数的微分为零时,就无法进一步优化了,训练即停止了。所以我们把这些梯度为零的点统称为临界点。临界点可以分为两类:极值点(局部极小值)和鞍点。鞍点就是指那些梯度为零但不是局部极小值或者局部极大值的点,因为其在损失......
  • datawhale深度学习入门:task1学习笔记
    机器学习是一种人工智能的分支,它主要涉及通过经验和数据来训练计算机模型以自动处理任务或进行预测。这些模型可以利用算法和数学模型来分析和学习数据,然后使用这些知识来执行特定的任务,如图像识别、语音识别、自然语言处理、数据分类、趋势预测等。深度学习是人工智能(AI)中的......
  • 异步任务的艺术:Bull应用详解
    Bull是一个强大的Node.js库,它基于Redis构建,为异步任务队列提供了简单而强大的解决方案。它支持多种任务处理模式,包括延迟任务、重复任务和优先级队列,使得发送电子邮件、生成报告或处理图像等耗时操作变得轻而易举。Bull的易用性、灵活性和稳定性使其成为现代应用程序中......
  • Datawhale X 李宏毅苹果书 AI夏令营 Task1.2 笔记
    《深度学习详解》3.2节中关于批量和动量的主要内容总结: 批量的概念:在深度学习训练过程中,数据不是一次性全部用于计算梯度,而是被分成多个小批量(batch),每个批量包含一定数量的数据。每个批量的损失函数用于计算梯度并更新模型参数。批量大小对梯度下降法的影响:两种极端情况:......
  • Datawhale X 李宏毅苹果书 AI夏令营:task1通过案例了解机器学习
    隐藏任务:①:找出本篇中形如回归(regression)加粗字体的术语,并用自己的话进行解释,列成表格,与学习群的其他小伙伴讨论你的理解和搜索到的相关案例。②:整理出本篇中所有的公式,手动摘录,并尝试理解。③:找出机器学习找函数的3个步骤!并查找资料,交叉佐证这些步骤。④:归纳梯度下降的步骤。......
  • Datawhale X 李宏毅苹果书 AI夏令营(Task2)
     一、学前概览        任务内容:criticalpoint并不一定是训练神经网络遇到的最大的阻碍,还有一种叫AdaptiveLearningRate的技术。        任务目的:了解掌握LearningRate和分类损失的计算。        本节出现术语:自适应学习率(rootmeansquare、RM......
  • 【效率提升工具推荐】AI编程工具合集
    AI编程工具是指那些专门为开发和训练人工智能模型而设计的工具和框架。这些工具可以帮助开发者更高效地构建、训练和部署机器学习和深度学习模型。以下是一些常用的AI编程工具及其特点:1.TensorFlow简介:由Google开发,是最流行的开源机器学习框架之一。特点:支持广泛的机器学......
  • C语言:编程世界的基石
    在计算机科学的世界里,C语言就像一座坚固的桥梁,连接着硬件和软件的两端。自从20世纪70年代诞生以来,C语言以其简洁、高效和强大的特性,成为了编程领域的经典之作。本文将探讨C语言在不同工作领域中的应用,以及它为何能够历经时间的考验,依旧活跃在现代编程的舞台上。目录1.系......
  • 第三章 异步编程
    3.1事件循环理解成为一个死循环,去检测并执行某些代码。#伪代码任务列表=[任务1,任务2,任务3,...]whileTrue:可执行的任务列表,已完成的任务列表=去任务列表中检查所有的任务,将'可执行'和'已完成'的任务返回for就绪任务in可执行的任务列表:......
  • 实战案例一:异步操作redis
    异步redis在使用python代码操作redis时,链接/操作/断开都是网络IO。pip3installaioredis示例1:#!/usr/bin/envpython#-*-coding:utf-8-*-importasyncioimportaioredisasyncdefexecute(address,password):print("开始执行",address)#网络IO操作:创......