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

Driver具体负责什么工作

在 Apache Spark 中,Driver(驱动程序) 是 Spark 应用的核心控制节点,负责协调整个应用的执行流程。它是用户编写的 Spark 应用程序(如 main() 方法)的入口点,直接决定了任务的调度、资源分配和结果处理。以下是 Driver 的具体职责和工作内容:


1. 核心职责概览

职责说明
初始化 SparkContext创建 Spark 应用的核心上下文,连接集群并申请资源。
解析用户代码将用户编写的转换(Transformations)和动作(Actions)转换为逻辑执行计划。
任务调度与拆分将逻辑计划转换为物理计划(DAG),拆分为 Stage 和 Task。
协调资源分配与集群管理器(Cluster Manager)通信,申请和管理 Executor 资源。
监控与容错跟踪任务执行状态,处理失败重试、数据恢复(如 Checkpoint)。
结果处理收集计算结果(如 collect())或写入外部存储。

2. 详细工作流程

(1) 初始化 SparkContext
  • 触发点:用户代码中调用 new SparkContext()
  • 关键操作
    • 解析配置参数(如 spark.master, spark.app.name)。
    • 与集群管理器(如 YARN、Kubernetes、Standalone)建立连接。
    • 申请 Executor 资源(如 CPU、内存)。
(2) 构建逻辑执行计划(DAG)
  • 转换操作(Transformations)
    • 将用户代码中的 mapfilterjoin 等操作转换为 RDD/Dataset 的依赖关系图(DAG)。
  • 动作操作(Actions)
    • 当遇到 collect()count()saveAsTextFile() 等操作时,触发 DAG 的实际执行。
(3) 物理执行计划拆分
  • DAGScheduler
    • 将 DAG 拆分为多个 Stage(根据宽依赖/窄依赖)。
    • 每个 Stage 进一步拆分为 Task(每个 Task 对应一个分区数据的计算)。
  • TaskScheduler
    • 将 Task 分发到 Executor 上执行。
    • 处理任务的调度策略(如 FIFO、FAIR)。
(4) 资源协调与监控
  • 与集群管理器的交互
    • 在 Cluster 模式下,Driver 可能由集群管理器动态分配(如 YARN 的 ApplicationMaster)。
    • 在 Client 模式下,Driver 运行在提交任务的客户端机器。
  • Executor 生命周期管理
    • 启动时申请 Executor 资源,结束时释放资源。
    • 监控 Executor 的心跳,处理失联节点。
(5) 容错与恢复
  • 任务重试
    • 如果某个 Task 失败,Driver 会重新调度该 Task(默认重试 3 次)。
  • Stage 重试
    • 如果某个 Stage 失败,Driver 会重新计算该 Stage 的父 Stage(若依赖数据丢失)。
  • Checkpoint 管理
    • 将 RDD 的中间状态持久化到可靠存储(如 HDFS),避免重复计算。
(6) 结果处理
  • 收集计算结果
    • collect()take() 等操作,Driver 需接收所有 Executor 返回的数据(需注意 Driver 内存限制)。
  • 写入外部系统
    • 直接控制数据写入 HDFS、数据库等(如 saveAsTextFile())。

3. Driver 与 Executor 的对比

角色职责运行位置
Driver调度任务、管理资源、协调执行、处理结果。客户端或集群节点(取决于模式)
Executor执行 Task、缓存数据、上报状态。集群的工作节点(Worker Node)

4. 不同部署模式下的 Driver

  • Local 模式
    • Driver 和 Executor 在同一个 JVM 进程中运行(仅限单机调试)。
  • Standalone/YARN/Kubernetes 的 Cluster 模式
    • Driver 由集群管理器启动(如 YARN 的 ApplicationMaster)。
    • 客户端提交任务后可断开连接。
  • Client 模式
    • Driver 运行在提交任务的客户端机器(如边缘节点)。
    • 客户端需保持运行直至任务结束。

5. 常见问题与注意事项

(1) Driver 单点故障
  • 问题:Driver 崩溃会导致整个应用失败。
  • 解决方案
    • 使用 Cluster 模式(Driver 在集群中运行,可通过工具监控重启)。
    • 启用 Checkpoint(避免重复计算丢失的数据)。
(2) Driver 内存不足
  • 场景:使用 collect() 将大量数据拉取到 Driver。
  • 解决方案
    • 避免在 Driver 上处理大数据,优先使用分布式操作(如 saveAsTextFile())。
    • 增加 spark.driver.memory 配置。
(3) 网络与资源竞争
  • 问题:Client 模式下,Driver 在客户端运行,可能因网络问题或资源不足导致任务失败。
  • 解决方案:优先使用 Cluster 模式部署关键任务。

6. 示例:Driver 在 WordCount 中的作用

# 用户代码(Driver 中运行)
from pyspark import SparkContext
sc = SparkContext("local", "WordCount")
lines = sc.textFile("hdfs://data.txt")  # 逻辑计划
words = lines.flatMap(lambda line: line.split(" "))
counts = words.countByValue()          # 触发 DAG 执行
print(counts)                           # 结果收集到 Driver 并打印
  • Driver 的具体操作
    1. 创建 SparkContext
    2. textFilecountByValue 转换为 DAG。
    3. 调度 Task 到 Executor。
    4. 收集结果并输出。

总结

Driver 是 Spark 应用的“大脑”,负责从代码解析到任务调度的全流程控制。它的核心职责是逻辑计划的生成、物理任务的调度、资源协调和结果处理。合理配置 Driver 的资源(如内存)和选择合适的部署模式,是优化 Spark 应用稳定性和性能的关键。

相关文章:

Driver具体负责什么工作

在 Apache Spark 中,Driver(驱动程序) 是 Spark 应用的核心控制节点,负责协调整个应用的执行流程。它是用户编写的 Spark 应用程序(如 main() 方法)的入口点,直接决定了任务的调度、资源分配和结…...

LeetCode 热题 100----2.移动零

LeetCode 热题 100----2.移动零 题目描述 给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。请注意 ,必须在不复制数组的情况下原地对数组进行操作。示例 1:输入: nums [0,1,0,3,12] 输出: [1,3,12,…...

能源革命新突破:虚拟电厂赋能微电网智能调控,构建低碳生态新格局

在“双碳”目标的引领下,中央一号文件明确提出了“推进农村能源革命,深化绿色低碳技术应用”。作为能耗集中区域,产业园区如何实现清洁能源高效消纳与碳减排的目标成为了难题,中电国为推出的虚拟电厂与风光储充柴多能互补的微电网…...

Java集合框架深度剖析:从数据结构到实战应用

引言 Java集合框架是Java开发中的核心组件之一,其设计目标是提供高性能、高复用性的数据容器。无论是数据处理、缓存设计还是高并发场景,集合框架都扮演着关键角色。本文将从List、Map、Set三大核心接口出发,深入剖析其主流实现类&#xff0…...

基于灵动微单片机SPIN系列的两轮车解决方案

电动车需配备与电机兼容性更高的双模控制器。灵动针对两轮车提供了相应的方案和解决算法。在两轮车的霍尔传感器出现故障时,系统应能继续有效地驱动电机。除了常规的过流、过压、过温保护措施外,灵动的方案还支持防盗功能,具备电刹车能力&…...

ngx_http_core_server_name

定义在 src\http\ngx_http_core_module.c static char * ngx_http_core_server_name(ngx_conf_t *cf, ngx_command_t *cmd, void *conf) {ngx_http_core_srv_conf_t *cscf conf;u_char ch;ngx_str_t *value;ngx_uint_t i;ngx_…...

【Docker系列一】Docker 简介

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...

[C++面试] 你了解transform吗?

层级核心知识点入门基本语法、与for_each对比、单/双范围操作进阶动态扩展、原地转换、类型兼容性、异常安全高阶性能优化、C20 Ranges、transform_if模拟 一、入门 1、描述std::transform的基本功能&#xff0c;并写出两种版本的函数原型 std::transform函数是 C 标准库<…...

MSE分类时梯度消失的问题详解和交叉熵损失的梯度推导

下面是MSE不适合分类任务的解释&#xff0c;包含梯度推导。以及交叉熵的梯度推导。 前文请移步笔者的另一篇博客&#xff1a;大模型训练为什么选择交叉熵损失&#xff08;Cross-Entropy Loss&#xff09;&#xff1a;均方误差&#xff08;MSE&#xff09;和交叉熵损失的深入对比…...

docker 安装部署 canal

1 mysql 安装 1.1 拉取镜像 docker pull mysql:8.4.41.2 创建挂载目录 mkdir -p /user/lzl/tool/docker/mysql/mysql_8.4.4/home/confmkdir -p /user/lzl/tool/docker/mysql/mysql_8.4.4/home/datamkdir -p /user/lzl/tool/docker/mysql/mysql_8.4.4/home/log1.3 编辑配置文…...

flowable适配达梦7 (2.1)

经过第一版的问题解决&#xff0c;后端项目可以启动&#xff0c;前端页面也集成进去。 前端在流程设计页面报错 之后发现主要是组件中modelerStore这个值没有 解决方法:在data增加对象 给component/process/designer.vue 中涉及到的每个子组件传入 :modelerStore“modeler…...

优化 Docker 镜像 技巧

优化 Docker 镜像可以提高构建速度、减少镜像大小、提高安全性和效率。以下是一些优化 Docker 镜像的方法&#xff1a; 使用适当的基础镜像 选择合适的基础镜像可以减小镜像大小&#xff0c;并确保基础镜像的安全性和更新性。Alpine、Ubuntu Minimal 等轻量级基础镜像是常用选…...

Spring Boot框架中常用注解

以下是Spring Boot框架中常用注解的详细说明&#xff0c;包括名称、用途、用法、使用位置及扩展示例&#xff0c;按功能模块分类整理&#xff1a; 一、核心启动与配置注解 1. SpringBootApplication 用途&#xff1a;主启动类注解&#xff0c;整合了 Configuration、EnableAu…...

Linux笔记之Ubuntu22.04安装IBus中文输入法教程

Linux笔记之Ubuntu22.04安装IBus中文输入法教程 code review&#xff01; 文章目录 Linux笔记之Ubuntu22.04安装IBus中文输入法教程安装 IBus 并配置中文输入法步骤 1: 安装 IBus 和拼音插件步骤 2: 设置 IBus 为默认输入法框架步骤 3: 重启会话步骤 4: 添加中文输入法步骤 5: …...

(UI自动化测试web端)第二篇:元素定位的方法_xpath属性定位

看代码里的【driver.find_element_by_xpath( )】()里的路径怎么写&#xff1f; xpath元素定位有多种写法&#xff0c;那我们现在说的就是在元素定位时&#xff0c;根据网页的实际情况来选择适合的xpath元素定位的写法。 文章主要介绍了xpath属性定位的方法和属性扩展使用的方法…...

Linux中执行 ifconfig 命令时提示 “未找到命令”

在 Linux 系统里&#xff0c;若执行 ifconfig 命令时提示 “未找到命令” 通常是由于系统没有安装 net-tools 包&#xff0c;或者该命令不在系统的 PATH 环境变量所包含的路径中 安装 net-tools 包 # Ubuntu/Debian sudo apt update sudo apt install net-tools# CentOS 7 及以…...

UE4学习笔记 FPS游戏制作15修正可以换枪中可以继续换枪和开火的Bug

现在存在的问题是换枪动作没完成时&#xff0c;可以继续换枪或者开枪 因为换枪这个动作是由玩家进行的&#xff0c;所以应该修改FppShooter脚本 我们添加两个参数 最后一次换枪的时间和换枪动画的长度 EquipmentLength 设置默认值0.6秒 添加一个新函数IsInEquip&#xff0c;返…...

SSL/TLS 和 SSH 介绍以及他们的区别

目录 SSL/TLS SSL/TLS工作原理的核心步骤握手阶段&#xff08;Handshake Protocol&#xff09;加密通信阶段&#xff08;Encrypted Communication Phase&#xff09;会话恢复&#xff08;Session Resumption&#xff09; SSH SSH 加密机制的核心步骤 SSH 和 SSL 区别 SSL/TLS …...

AudioTrack

AudioTrack是Android Audio系统提供给应用开发者&#xff08;java/C&#xff09;的API&#xff0c;用于操作音频播放的数据通路。MeidaPlayer在播放音乐时用到的是它&#xff0c;我们可以也可以直接使用AudioTrack进行音频播放。它是最基本的音频数据输出类。 AudioTrack.java…...

Windows安装Rust环境(详细教程)

一、 安装mingw64(C语言环境) Rust默认使用的C语言依赖Visual Studio&#xff0c;但该工具占用空间大安装也较为麻烦&#xff0c;可以选用轻便的mingw64包。 1.1 安装地址 (1) 下载地址1-GitHub&#xff1a;Releases niXman/mingw-builds-binaries GitHub (2) 下载地址2-W…...

监控IP,网站将异常情况通过飞书机器人发至指定群内

界面如下&#xff0c;丑是丑了点&#xff0c;但主打一个实用。 主要就是通过ping&#xff0c;就是一直在ping&#xff0c;当不通的时候&#xff0c;就根据你设置的报警时间&#xff0c;主要是利用飞书机器人来给飞书指定群里发异常信息报警。 直接上代码 import subprocess i…...

JVM 02

今天是2025/03/23 19:07 day 10 总路线请移步主页Java大纲相关文章 今天进行JVM 3,4 个模块的归纳 首先是JVM的相关内容概括的思维导图 3. 类加载机制 加载过程 加载&#xff08;Loading&#xff09; 通过类全限定名获取类的二进制字节流&#xff08;如从JAR包、网络、动态…...

局域网设备访问虚拟机 挂载NFS

目录 引言&#xff1a;网络IP问题配置虚拟机网络有线网络&#xff1a;无线网络&#xff1a; NFS文件挂载服务端配置客户端连接 引言&#xff1a; 需求&#xff1a;局域网下树莓派设备想要访问电脑主机上的虚拟机。这样可以通过nfs挂载网络设备&#xff0c;有利于交叉编译环境调…...

零、ubuntu20.04 安装 anaconda

1.anaconda下载 地址&#xff1a;Index of /anaconda/archive/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror 选择&#xff1a;Anaconda3-2023.07-2-Linux-x86_64.sh 2.anaconda安装 选择下载目录&#xff0c;选在在终端中打开&#xff0c;然后在终端输入安装命…...

IntelliJ IDEA 将 Spring Boot 项目远程部署到服务器

使用 IntelliJ IDEA 将 Spring Boot 项目远程部署到服务器的详细步骤&#xff0c;涵盖多种常见方法&#xff1a; 方法一&#xff1a;通过 SSH Maven 插件直接部署 1. 服务器环境准备 确保服务器已安装&#xff1a; Java 运行环境&#xff08;与项目 JDK 版本一致&#xff0…...

利用dify打造命令行助手

利用dify打造命令行助手 前言 我是mac os 的使用者。 如果说macos哪个工具我使用最频繁&#xff0c;最能提高效率的工作工具非zsh莫属(当然&#xff0c;我安装了iterm)。前不久&#xff0c;我要扩容线上的k8s集群。便想统计一下每个node上运行的pod数量。我不知道合适的命令&…...

前端面试整理

一、csshtml 二、js 三、vue 四、react 1.React 类组件与函数式组件核心区别 定义方式的不同&#xff0c;类组件用ES6的class&#xff0c;继承React.Component&#xff0c;而函数式组件用函数声明‌。 状态管理方面&#xff0c;类组件用this.state和setState&#xff0c;函…...

Perl语言的计算机网络

Perl语言在计算机网络中的应用 引言 在计算机科学的众多领域中&#xff0c;网络编程是一个极具挑战性和广泛应用的领域。在这其中&#xff0c;Perl语言以其强大的文本处理能力和简洁的语法&#xff0c;成为了网络编程的重要工具之一。自从1987年Larry Wall创造Perl以来&#…...

数据结构初阶-二叉树的应用

1.单值二叉树 题目链接&#xff1a;https://leetcode.cn/problems/univalued-binary-tree/description/ 题目思路&#xff1a;我们把根结点与左孩子和右孩子进行比较&#xff0c;只有左右子树都是单值二叉树的时候才为单值二叉树。但是我们需要先返回的是false&#xff0c;最…...

【赵渝强老师】在Docker中运行达梦数据库

Docker是一个客户端服务器&#xff08;Client-Server&#xff09;架构。Docker客户端和Docker守护进程交流&#xff0c;而Docker的守护进程是运作Docker的核心&#xff0c;起着非常重要的作用&#xff08;如构建、运行和分发Docker容器等&#xff09;。达梦官方提供了DM 8在Doc…...

掌握C#循环:for、while、break与continue详解及游戏案例

Langchain系列文章目录 01-玩转LangChain&#xff1a;从模型调用到Prompt模板与输出解析的完整指南 02-玩转 LangChain Memory 模块&#xff1a;四种记忆类型详解及应用场景全覆盖 03-全面掌握 LangChain&#xff1a;从核心链条构建到动态任务分配的实战指南 04-玩转 LangChai…...

备份比赛数据【算法赛】

0备份比赛数据【算法赛】 - 蓝桥云课 问题描述 蓝桥杯大赛的组委会最近遇到了一个棘手的问题。他们有 N 台电脑需要备份比赛数据&#xff0c;每台电脑所需的备份时间分别为 A1​,A2​,…,AN​ 分钟。 备份必须按编号顺序依次进行&#xff0c;即先第 1 台&#xff0c;再第 2 …...

【算法笔记】图论基础(二):最短路、判环、二分图

目录 最短路松弛操作Dijkstra朴素Dijkstra时间复杂度算法过程例题 堆优化Dijkstra时间按复杂度算法过程例题 bellman-ford时间复杂度为什么dijkstra不能处理负权边&#xff1f;dijkstra的三个步骤&#xff1a;反例失效的原因 算法过程例题 spfa时间复杂度算法过程例题spfa求最短…...

【性能优化点滴】odygrd/quill 中一个简单的标记位作用--降低 IO 次数

在 StreamSink 类中&#xff0c;成员变量 _write_occurred 的作用是 跟踪自上次刷新&#xff08;Flush&#xff09;以来是否有写入操作发生&#xff0c;其核心目的是 优化 I/O 性能。以下是详细解析&#xff1a; _write_occurred 的作用 1. 避免不必要的刷新&#xff08;Flush…...

Unity2022发布Webgl2微信小游戏部分真机黑屏

复现规律&#xff1a; Unity PlayerSetting中取消勾选ShowSplashScreen 分析&#xff1a; 在Unity中&#xff0c;Splash Screen&#xff08;启动画面&#xff09; 不仅是视觉上的加载动画&#xff0c;还承担了关键的引擎初始化、资源预加载和渲染环境准备等底层逻辑。禁用后导…...

TDengine 3.3.2.0 集群报错 Post “http://buildkitsandbox:6041/rest/sql“

原因&#xff1a; 初始化时处于内网环境下&#xff0c;Post “http://buildkitsandbox:6041/rest/sql“ 无法访问 修复&#xff1a; vi /etc/hosts将buildkitsandbox映射为本机节点 外网环境下初始化时没有该问题...

基于yolov11的中空圆柱形缺陷检测系统python源码+pytorch模型+评估指标曲线+精美GUI界面

【背景介绍】 中空圆柱形缺陷检测在多个领域具有深远意义。在石油、天然气及化工行业&#xff0c;缺陷检测可预防泄漏事故&#xff0c;避免火灾、爆炸及环境污染&#xff0c;保障人员与财产安全。建筑、桥梁及航空航天领域则依赖此技术确保中空圆柱形结构的稳定性&#xff0c;…...

Python爬虫-爬取AliExpress商品搜索词排名数据

前言 本文是该专栏的第49篇,后面会持续分享python爬虫干货知识,记得关注。 本文,笔者以AliExpress平台为例。基于Python爬虫,通过某个指定的“搜索关键词”,批量获取该“搜索关键词”的商品排名数据。 具体实现思路和详细逻辑,笔者将在正文结合完整代码进行详细介绍。废…...

20250321在荣品的PRO-RK3566开发板的buildroot系统下使用ll命令【直接编译进IMG】

./buildroot/system/skeleton/etc/profile # some more ls aliases alias llls -alF alias lals -A alias lls -CF 20250321在荣品的PRO-RK3566开发板的buildroot系统下使用ll命令【直接编译进IMG】 2025/3/21 16:53 cd /etc/ echo "" >> # some more ls ali…...

Flink 自定义数据源:从理论到实践的全方位指南

目录 第一章:自定义数据源的基础概念 数据源是什么?它在 Flink 中扮演什么角色? Flink 的内置数据源:开箱即用的 “标配” 为什么需要自定义数据源?它的杀手锏在哪? 第二章:自定义数据源的实现之道 接口选择:从简单到高级,选对工具事半功倍 SourceFunction:入门…...

如何在 Java 中查找 PDF 页面大小(教程)

PDF 文件并未被 Java 直接支持。本教程将向您展示如何使用 JPedal Java PDF 库 以简单的步骤提取 PDF 文件的页面大小&#xff08;高度和宽度&#xff09;。页面大小可以以 厘米、英寸或像素 为单位获取。 为什么要使用第三方库处理 PDF 文件&#xff1f; PDF 文件是一种复杂…...

java版嘎嘎快充玉阳软件互联互通中电联云快充协议充电桩铁塔协议汽车单车一体充电系统源码uniapp

演示&#xff1a; 微信小程序&#xff1a;嘎嘎快充 http://server.s34.cn:1888/ 系统管理员 admin/123456 运营管理员 yyadmin/Yyadmin2024 运营商 operator/operator2024 系统特色&#xff1a; 多商户、汽车单车一体、互联互通、移动管理端&#xff08;开发中&#xff09; 另…...

使用Mastra.ai构建AI智能体:一次动手实践

Mastra框架提供了一种简洁高效的AI智能体构建方式。 本文将分享我使用Mastra.ai的实践经历。 我们将逐步完成环境搭建、探索框架核心功能,并构建一个能与工具交互的基础智能体。 过程中我会总结成功经验、遇到的问题以及收获的启示。 如果你对AI开发感兴趣,或正在寻找一个…...

Redis之大key问题

BigKey 常见面试题目 你会么&#xff1f; MoreKey 案例 大批量往redis里面插入2000W测试数据key Linux Bash下面执行&#xff0c;批量插入100W for((i1;i<100*10000;i)); do echo "set k$i v$i" >> /tmp/redisTest.txt ;done;生成100W条redis批量设置kv的…...

Excel第41套全国人口普查

2. 导入网页中的表格&#xff1a;数据-现有链接-考生文件夹&#xff1a;网页-找到表格-点击→变为√-导入删除外部链接关系&#xff1a;数据-点击链接-选中连接-删除-确定&#xff08;套用表格格式-也会是删除外部链接&#xff09;数值缩小10000倍&#xff08;除以10000即可&am…...

深度学习驱动的车牌识别:技术演进与未来挑战

一、引言 1.1 研究背景 在当今社会&#xff0c;智能交通系统的发展日益重要&#xff0c;而车牌识别作为其关键组成部分&#xff0c;发挥着至关重要的作用。车牌识别技术广泛应用于交通管理、停车场管理、安防监控等领域。在交通管理中&#xff0c;它可以用于车辆识别、交通违…...

PageHiOffice网页组件(WebOffice文档控件)开发集成技巧专题一

PageHiOffice网页组件作为最新一代的WebOffice文档控件&#xff0c;这是目前市场上唯一能做到在Chrome等最新版浏览器中实现内嵌网页运行的商用文档控件&#xff0c;是OA及ERP等系统处理各种文档的福音。从发布到完善已经超过3年&#xff0c;不管是功能性还是稳定性都已经有了长…...

A2 最佳学习方法

记录自己想法的最好理由是发现自己的想法&#xff0c;并将其组织成可传播的形式 (The best reason for recording what one thinks is to discover what one thinks and to organize it in transmittable form.) Prof Ackoff 经验之谈&#xff1a; 做培训或者写文章&#xff…...

从JVM底层揭开Java方法重载与重写的面纱:原理、区别与高频面试题突破

&#x1f31f;引言&#xff1a;一场由方法调用引发的"血案" 2018年&#xff0c;某电商平台在"双十一"大促期间遭遇严重系统故障。 技术团队排查发现&#xff0c;问题根源竟是一个继承体系中的方法重写未被正确处理&#xff0c;导致订单金额计算出现指数级…...

线程控制与线程操作

目录 线程的创建 tid pthread_self() 线程的退出 pthread_join 传参问题和返回值问题 pthread_exit 线程取消 线程分离 我们来学习线程的控制与线程操作 线程的创建 我们之前在线程的概念中就讲过了&#xff0c;我们可以通过pthread_create来创建一个或者多个子线程…...