当前位置: 首页 > news >正文

Thread线程基础使用

多线程目的:其实就是希望“并行”执行多任务,提升效率。

单核多线程基于时间片轮询 并发而非并行

线程最大数等于cpu核心数为佳

namespace thinger.ThreadDemo
{class Program{//主线程static void Main(string[] args){Console.WriteLine("这个是主线程执行的任务1!");//。。。。。。。Thread thread = new Thread(TStart); //基于委托传递具体方法//设为后台线程,前台线程执行完, 后台线程会被强制终止thread.IsBackground = true;thread.Start();Thread thread2 = new Thread(() =>{Thread.Sleep(2000);//模拟线程执行时间是2秒Console.WriteLine("这个是子线程2执行的内容!");});thread2.IsBackground = true;thread2.Start();Console.WriteLine("这个是主线程执行的任务2");Console.WriteLine("这个是主线程执行的任务3");Console.WriteLine("----------------------------");Console.ReadLine();}static void TStart(){Thread.Sleep(3000);//模拟线程执行时间是2秒Console.WriteLine("这个是子线程1执行的内容!");}}
}

同步执行

阻塞与串行:同步执行通常是阻塞且串行的。这意味着当一个任务开始时,调用它的线程会一直等待该任务完成,期间不会执行其他任务

异步执行

非阻塞与并发(或并行):异步执行是非阻塞的,允许并发或并行处理。在异步模型中,发起一个异步操作后,调用者可以立即继续执行其他代码,而不必等待该操作完成。

从主线程的角度来看,是否是异步取决于主线程的行为:

  • 如果主线程调用了 Thread.Start() 后立即继续执行其他代码而不等待新线程完成,那么这确实是异步执行。
  • 如果主线程调用了 Thread.Join() 等待新线程完成后再继续,那么从主线程的角度看,这是同步执行,因为主线程会阻塞直到新线程完成。

相关文章:

Thread线程基础使用

多线程目的:其实就是希望“并行”执行多任务,提升效率。 单核多线程基于时间片轮询 并发而非并行 线程最大数等于cpu核心数为佳 namespace thinger.ThreadDemo {class Program{//主线程static void Main(string[] args){Console.WriteLine("这个…...

【Linux】结构化命令

结构化命令structured command:允许脚本根据条件跳过部分命令,改变执行流程。 1、if-then语句 格式1: if command then commands fi 格式2: if command; then commands fi 运行if之后的command命令,如果它的退出状态码…...

ElasticSearch01-概述

零、文章目录 ElasticSearch01-概述 1、Elastic Stack (1)简介 官网地址:https://www.elastic.co/cn/ELK是一个免费开源的日志分析架构技术栈总称,包含三大基础组件,分别是Elasticsearch、Logstash、Kibana。但实际…...

docker xxxx is using its referenced image ea06665f255d

Error response from daemon: conflict: unable to remove repository reference “registrxxxxxx” (must force) - container 9642fd1fd4a0 is using its referenced image ea06665f255d 这个错误表明你尝试删除的镜像正在被一个容器使用,因此无法删除。要解决这…...

Vue 2 中 v-text 和 v-html 指令的使用详解

目录 Vue 2 中 v-text 和 v-html 指令的使用详解 v-text 指令 简介 基本语法 示例 1:基础用法 特点 v-html 指令 简介 基本语法 示例 2:基础用法 注意事项 区别与选择指南 何时使用 最佳实践 Vue 2 中 v-text 和 v-html 指令的使用详解 V…...

高级Python游戏开发:创建一款多人对战坦克大战

在本教程中,我们将用Python的Pygame库开发一款高级的坦克大战游戏。这款游戏支持多人对战、碰撞检测、子弹射击以及地图障碍生成,适合作为学习Python高级游戏开发的练习项目。 一、游戏功能概述 多人对战模式:玩家可以操作坦克,在同一屏幕上互相攻击。子弹射击:坦克可以发…...

数据结构_拓扑排序

拓扑排序 (所有点按照先后顺序排序) 1.先找到入度为0的点,记录之后,删除这个点和它的出边; 2.若有两个可选,随便选择一个 例 a的入度为0,选a [a] 随便选一个 [a,e] 再找入度为0的点 再选c 最后选d 拓…...

Edge SCDN 边缘安全加速有什么用?

Edge SCDN是最新推出的边缘安全加速服务,它是一种融合了安全防护和内容分发加速功能的网络服务技术,通过在网络边缘部署服务器节点,来优化内容的传输和用户的访问体验,同时保障网络安全。 抵御 DDoS 攻击: Edge SCDN …...

被狗咬住怎么让它松口?

当遭遇狗咬住的惊险状况,保持冷静是首要原则,慌乱只会让事态愈发糟糕。因为狗能敏锐感知人类的情绪,你的镇定能避免它因你的恐惧而愈发兴奋或紧张。 切勿盲目地用力拉扯被咬住的部位。狗的咬合力颇为强大,强行拉扯可能致使伤口撕裂…...

MySQL迁移SQLite 借助PYTHON脚本

使用 Python 脚本将 MySQL 数据库迁移到 SQLite 是一种灵活且强大的方法。 下面是一个基本的脚本示例,使用 pandas 和 sqlite3 库来实现这一过程。 这个脚本假设你已经安装了 pandas 和 mysql-connector-python 库。 步骤 安装必要的库: 如果尚未安装&#xff…...

Python什么是动态调用方法?What is Dynamic Method Invocation? (中英双语)

什么是动态调用方法? 动态调用方法指通过方法或属性的名称,在运行时而非编译时调用对象的方法或访问其属性。换句话说,在编写代码时,方法名或属性名可以是变量,只有在程序运行时才能确定调用的内容。这种特性允许程序…...

Cesium中实现仿ArcGIS三维的动态图层加载方式

Cesium 加载 ArcGIS 动态图层的方式 如果你在 Cesium 中加载过 ArcGIS 的动态图层,你会发现,Cesium 对于动态图层仍然采用类似切片图层的逻辑进行加载。也就是每个固定的瓦片 export 一张图片。 这样会造成一些问题: 请求量大,…...

数据冒险、控制冒险、结构冒险

计算机组成原理 数据冒险、控制冒险、结构冒险 对所有用户(所有程序员)可见:PSW、PC、通用寄存器 PSW(条件转移需要用到,程序员使用CMP指令的时候也需要用到所以是对用户可见)PC(跳转指令需要…...

TCA9555芯片手册解读(6)

接前一篇文章:TCA9555芯片手册解读(5) 二、详述 7. 上电复位 当电源(从0V)施加到VCC时,内部通电复位将TCA9555保持在复位状态,直到VCC达到VPOR。此时,重启条件被释放,T…...

NodeJs-fs模块

fs 全称为 file system ,称之为 文件系统 ,是 Node.js 中的 内置模块, fs模块可以实现与硬盘的交互,例如文件的创建、删除、重命名、移动,内容的写入读取等以及文件夹相关操作 写入文件 异步写入 // 导入fs模块const f…...

Transformer: Attention Is All You Need (2017) 翻译

论文:Attention Is All You Need 下载地址如下: download: Transformer Attention Is All you need Attention Is All You Need 中文 《Attention Is All You Need》是《Transformer》模型的开创性论文,提出了一种全新的基于注意力机制的架构&#xf…...

【记录】Django解决与VUE跨域问题

1 梗概 这里记录Django与VUE的跨域问题解决方法,主要修改内容是在 Django 中。当然其他的前端项目 Django 也可以这样处理。 2 安装辅助包 pip install django-cors-headers3 配置 settings.py INSTALLED_APPS [ # ... corsheaders, # ... ] 为了响应…...

Java 常见Exception异常解决方法

在Java编程中,异常处理是确保程序稳定性和健壮性的重要部分。了解常见的异常类型及其解决方法,可以帮助你编写更加健壮的代码。以下是一些常见的Java异常及其解决方法: NullPointerException:空指针异常 原因:尝试访问…...

东方通 TongWebV7 Docker 部署与 Spring Boot 集成指南

东方通 TongWebV7 Docker 部署与 Spring Boot 集成指南 文章目录 东方通 TongWebV7 Docker 部署与 Spring Boot 集成指南 一 TongWeb V7二 Spring Boot JAR 配置文件三 修改 maven 依赖四 docker compose 启动项目五 查看 docker 信息 本文详细讲解了如何在 Docker 环境中…...

TIM输入捕获---STM

一、简介 IC输入捕获 输入捕获模式下,当通道输入引脚出现指定电平跳变时,当前CNT的值将被锁存在CCR中,可用于测量PWM波形的频率、占空比、脉冲间隔、电平持续时间等参数 每个高级定时器和通用定时器都拥有4个输入捕获通道 可配置为PWMI模…...

2026最新版|程序员/小白大模型转行全攻略(零基础入门+路径规划+避坑指南,收藏必看)

2026年,AI大模型依旧是互联网技术圈的绝对核心风口,行业技术迭代速度持续加快,传统开发赛道内卷加剧、薪资封顶、岗位缩减等问题愈发凸显。无数基层程序员陷入职业瓶颈,零基础新手也苦于传统技术入门难、竞争大。 反观大模型赛道&…...

人像抠图用什么软件好?2026年实测9款抠图工具制作方法对比

人像抠图(背景分离)是日常生活中的常见需求——换证件照背景、制作社交媒体头像、编辑产品图等场景都离不开它。今年人像抠图的工具选择已经非常丰富,从零基础用户到专业设计师都能找到趁手的方案。本文会详细对比9款主流人像抠图工具的制作方…...

MySQL 8安装指南:Win/Mac/Linux全平台教程,含避坑技巧

一、MySQL 8 版本选择推荐下载 Oracle 官方版,开源、免费、更新最全。 👉 官网下载地址: https://dev.mysql.com/downloads/mysql/🪟 二、Windows 安装步骤✅ 1️⃣ 下载 Installer访问官网链接 → 点击 "MySQL Community (G…...

专业级抖音资源自动化采集方案:douyin-downloader企业级部署指南

专业级抖音资源自动化采集方案:douyin-downloader企业级部署指南 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fall…...

机器学习的几何本质:形状、距离与意义的三层重构

1. 这不是数学课,而是一场关于“机器如何看懂世界”的底层解剖你有没有想过,当一台机器识别出照片里是一只猫,它到底“看见”了什么?不是毛色、不是胡须、不是圆眼睛——它看见的是一组高维空间里的点云分布,是这些点之…...

如何3步快速配置罗技鼠标宏:PUBG零后坐力完整指南

如何3步快速配置罗技鼠标宏:PUBG零后坐力完整指南 【免费下载链接】logitech-pubg PUBG no recoil script for Logitech gaming mouse / 绝地求生 罗技 鼠标宏 项目地址: https://gitcode.com/gh_mirrors/lo/logitech-pubg 还在为《绝地求生》中难以控制的武…...

群晖NAS远程SSH配置全解:从权限控制到独立模式实战

1. 为什么群晖的SSH不是“开个开关”就完事——从权限失控风险说起群晖NAS作为家用与小型办公场景中最普及的存储设备,很多人买来装好硬盘、配好共享文件夹,就觉得万事大吉。直到某天想批量处理照片缩略图、想用rsync做异地备份、想部署一个轻量级服务&a…...

终极指南:5分钟让Switch手柄在Windows上完美运行

终极指南:5分钟让Switch手柄在Windows上完美运行 【免费下载链接】BetterJoy Allows the Nintendo Switch Pro Controller, Joycons and SNES controller to be used with CEMU, Citra, Dolphin, Yuzu and as generic XInput 项目地址: https://gitcode.com/gh_mi…...

嵌入式通用软件包ToolKit:跨平台模块化设计与工程实践

1. 项目概述:为什么我们需要一个“嵌入式通用软件包”?在嵌入式开发这个行当里摸爬滚打了十几年,我最大的感受就是“重复造轮子”和“碎片化”是效率的两大杀手。你想想看,是不是每个新项目启动,都得重新搭建一遍日志系…...

软件测试行业的技术创新:有哪些新兴技术将影响测试行业

一、AI驱动的智能测试:从辅助工具到核心引擎在2026年的软件测试领域,人工智能已经从概念验证阶段全面迈入深度落地期,成为驱动测试效能提升的核心引擎。AI驱动的智能测试正在从多个维度重构传统测试范式。(一)自动化测…...