LWN:对加速器驱动的硬性要求!

Pandas入门教程(二十二):股票数据分析实战——yfinance 获取数据、技术指标与收益率分析 把 Pandas 用在真实场景,才能体会它的价值。本文以茅台股票为例,用 yfinance 获取历史行情,完成缺失值处理与列筛选,绘制收盘价曲线,计算 SMA 移动平均线与 RSI 相对强弱指数,并通过日收益率、累计收益率和波动率完成完整的量化分析流程。 阅读详情

关注了就能看到更多这么棒的文章哦~

Requirements for accelerator drivers

By Jonathan Corbet
September 27, 2021
Maintainers summit
DeepL assisted translation
https://lwn.net/Articles/870418/

8 月份的时候,内核社区内爆发了一场关于人工智能加速器(AI accelerator)的驱动程序的长时间的争论。图形加速器的驱动被要求至少要提供一个用户空间部分的开源实现(因为用户空间代码才是这些 driver 的主要逻辑存在的位置)。到目前为止,其他类型的加速器驱动程序还没有被要求也要达到这个标准,这在社区内造成了一些冲突,也给不同领域的开发者带来了不一致的体验。2021 年的维护者峰会讨论了这个问题,希望能创造一个更一致的政策。

Greg Kroah-Hartman 是子系统的维护者,他在没有遵照 open-user-space (用户空间代码也要开源)这个标准的情况下接受了一些加速器的驱动。他在会议开始时说,在没有明确提出标准的场景下,他无法对这些驱动程序的开发者说 "不",他需要有个标准可以用来指给这些开发者从而拒绝他们。DRM(图形子系统)的维护者 Dave Airlie 说,他的子系统确实是有这类标准的,但他承认,这些标准很难作为一个普遍要求。他说,对开发人员说 "不",是让开发人员努力把事情做好的最好方法。如果标准定得太低,开发人员就会把他们的代码扔进去,然后就消失了。说 "不" 的情况下他们会更加投入。

他继续说,我们需要对大局更加负责,这意味着我们需要关于内核驱动的硬件如何实际工作的信息。这对于使用内核 API 的某些领域的驱动程序来说尤其需要这些信息,特别是使用到 DMA-BUFF API 的那些驱动。DMA-BUFF 是一种驱动之间的接口机制,使用该 API 的新驱动将与其他 "已经通过了所有标准" 的复杂驱动来交互通讯。我们不希望通过与一个新的驱动程序、甚至其开发者还没有加入社区的驱动程序交互通讯来损害这些现有驱动程序的运行。

Airlie 说,引发大部分争议的 Habana 人工智能加速器驱动,实际上比大多数驱动质量都要更好。但它仍然会产生安全问题。类似这种驱动程序的开发者们并不都是擅长创建安全内核 API 的专家。Kroah-Hartman 说,如果像 Habana 这样的驱动程序被挡在内核之外,他们仍然会使用像 DMA-BUFF 这样的 API,但是没有人会知道这一点,情况就会更糟。但是 Airlie 重申,DMA-BUF 是他不希望被绕过的一条底限。

Kroah-Hartman 说,他可以理解这个规则对图形驱动的影响,但是对于像 Habana 这样的驱动,他没有可以适用的标准。Airlie 回答说,Habana 加速器本质上是一个 GPU;人们可以在它上面实现 OpenCL–这是他在 Habana 开源其编译器之前并没有意识到的。他问道,如果一个供应商正在制造一个专用于计算的显卡,为什么他们的竞争对手可以满足我们的标准,但是他们就不行?

因此,Kroah-Hartman 问道,具体来说符合哪个标准的的驱动,需要满足同时提供开源版本的用户空间实现?Airlie 说,Habana 驱动是作为 "非 GPU 驱动 "提出的,但现在它正在使用 DMA-BUFF。这就是标准了。现在 InfiniBand 子系统也在使用这个标准。

Arnd Bergmann 说,这里有几种情况。对于什么都可以运行的那些加速器,比如 GPU,它的驱动确实需要通过 DRM 子系统并遵守 DRM 的规则。不过,对于有更明确用途的设备,它们最好是采用定制的内核接口,并降低这里的合入标准。

Kroah-Hartman 说,维护者必须做出判断。很多新的子系统被提交给他,他需要对每个子系统都做出决定。他应该怎么做?Airlie 重申,应该在 DMA-BUFF 和 DMA fence API 上作为界限。"角落里的那些小驱动 "可以不需要满足很多规则就能合并,但加速器不可避免地会需要使用到 DMA-BUFF。在没有访问 DMA 或 graphics 的情况下,加速器就没有存在的意义了。他说,这些设备最开始时很简单,但一旦它们走向生产系统,就会变得更加复杂。Kroah-Hartman 同意坚持 DMA-BUF 这个标准。

Airlie 说,graphics 的一个问题是,所有的 GPU 都没有通用的用户空间 API,只有 "一个很小的提供可发现性的 API"。这些 device 差异非常大,以至于无法创建一个标准 API。但这意味着对特定驱动程序提供的 API 几乎没有什么控制。就像现在这样,图形开发人员经常在驱动程序中可以发现一些用户空间中从未使用过的接口。

他说,DMA-BUFF 的这个标准很好,因为使用该 API 就可以让开发者与专家开始交流。社区里面能有一个开发者来知道 device 的用户空间代码在哪里,那就非常有价值了。这样我们有可能在 review 中看到哪些接口是真正需要的,以及其他的一些信息。供应商需要发布针对他们设备的编译器,以便 DRM 开发者可以看到硬件的能力。例如,如果设备可以直接发起 DMA,那么 API 就必须防止 user 直接使用这种能力。

Torvalds speaks

这时,Linus Torvalds 插进来说,他想对 Airlie 提出的一些观点进行一些讨论。Airlie 来自一个拥有 25 年经验的子系统,这里有自己的历史信息和社区。开发者们知道这些 device 将是如何工作的。但是,当新人进来的时候,我们不想创造一个非常高的准入门槛。是的,他们第一次确实会做错一些事情,但是在我们让他们合入内核之前,他们都没有机会学会如何做正确的事。

出于这个原因,Torvalds 赞成接受新的代码,并让不同的团体自己犯错自己成长。毕竟,DRM 的开发者过去把很多事情都搞砸了,这也是走向他们自己目前的 API 的道路的必由之路。DRM 的开发者当初肯定不知道他们现在所知道的一切知识。像 Habana 这样的公司也是如此,他们会做错事情,但如果我们阻止他们,他们就永远不会把事情做对。这也是他让 ksmbd 和 ntfs3 文件系统进入 5.15 的原因。

换句话说,他继续说,社区应该对接纳新的子系统要持开放态度,但也应该更主动地把它们废弃淘汰出去。如果一个子系统给其他人带来了问题,那么它就要被淘汰掉。如果没有用户空间这一部分,为什么要留着它在 kernel 里?如果 Habana 驱动程序造成了麻烦,它就可以被扔掉了。

他说,安全问题是 "纯粹废话"。硬件工程师已经拥有了机器,我们都无法保护自己不受设备能做的事情的威胁。我们无法解决硬件层面的安全问题,但我们可以努力确保可维护性(maintainability)。不过,Torvalds 确实也说,Airlie 讲到 DMA-BUFF 的时候的观点是正确的。驱动程序大多是独立的,但使用 DMA-BUF 是它们开始相互交互的地方,这就会带来实际上的可维护性问题。

Tests

Kees Cook 说,代码质量是一个真实的问题,我们没有足够的自动化分析来确保内核代码的质量。他问,ksmbd 的测试到位了吗?一般来说,我们没有办法直接找到针对某一段特定代码的测试方案(如果有这么个测试方案的话)。他说,他不是 BPF 的狂热粉丝,但是 BPF verifier 就很全面,可以防止很多问题。

Ted Ts'o 说,syzbot fuzzing system 虽然可能很烦人,但它也是很不错的。网络文件系统(如 ksmbd)中就缺少一个好的 fuzzing 测试方案。每个加速器都有自己的指令集架构,这个问题会更加难处理。Airlie 说,如果没有人使用有测试覆盖的 API,那么这个测试就没有什么价值。这种测试对可维护性没有什么帮助,因为他们不能让维护者们知道,哪些 API 正在被经常使用。这就是为什么 DRM 开发者坚持要有一个非常活跃的用户空间程序,要有活力,并且有许多能回答出相关问题的开发者。

Chris Mason,作为一个一直在推动 vendor 将他们的代码纳入内核的人,他觉得社区正在创造一个环境来让人们觉得 NVIDIA 模式(专有驱动程序)变成了一个最有效的模式。让代码进入上游的难度越大,就越难说服 vendor 来做正确的选择。因此,降低标准似乎是一个正确做法。我们必须让供应商经历犯错的过程,也让他们感受到相关难处。

Torvalds 谈到了最近与一家大公司的谈话,他惊讶地发现,那里雇用的一些核心开发人员并不希望总是在 upstream 上工作。他们总是很担心他们所关心的一个工作场景,所以他们就一直在这个领域里面进行各种相关改动,而不去考虑更大范围的需求。他说,"upstream first" 是一个目标,但它不能作为一个硬性要求。我们希望开发者愿意与我们合作,而不希望成为他们必须要处理的一种束缚。这意味着我们必须要有一定的灵活性。

Kroah-Hartman 说,他想接受新的东西,使其开发者成为社区的一部分,让他们更关心我们。Airlie 回答说,供应商只关心客户,所以只有他们的客户关心我们,他们才会关心我们。Kroah-Hartman 继续说,我们必须一起合作工作,并且要接纳对方。我们不能在代码合并之前,强行创建一个多个竞争对手都要统一的 API。Mason 把这句话重新表述为 "如果我们不让他们进入餐厅,就没法让他们喝到 Kool-Aid 饮料"。

Ts'o 最后询问大家是否已经基本上达成共识了,从而结束了这次长时间的讨论。是否有什么可以说的来统一驱动程序的接受标准?Airlie 说,在使用 DMA-BUFF 和 fence API 的问题上,大家似乎达成了一致,没有人反对他的观点。关于如何发现到这条线是否被绕过的情况,大家进行了一些讨论。编者建议将这些接口移到 module namespace 中,几天后,Kroah-Hartman 发布了相关的 patch。

全文完
LWN 文章遵循 CC BY-SA 4.0 许可协议。

欢迎分享、转载及基于现有协议再创作~

长按下面二维码关注,关注 LWN 深度文章以及开源社区的各种新近言论~

4dabf8db160c022ba4a544aa5c486f1b.png

ESP32-P4 GPIO双域架构:HP/LP分离、寄存器级控制与低功耗工程实践 GPIO(通用输入输出)是嵌入式系统中最基础且高频使用的硬件接口,其性能、灵活性与功耗特性直接影响产品实时性与续航能力。现代高性能MCU如ESP32-P4通过HP/LP双电源域分离、可编程IO复用(IO MUX)、信号交换矩阵及硬件自动化机制(如ETM事件、Sigma-Delta调制),将传统GPIO升级为兼具模拟能力、亚微秒响应与微安级待机的智能外设子系统。其核心价值在于实现引脚功能动态重构、中断零延迟处理、Deep-sleep期间自主唤醒与多核安全操作。典型应用场景涵盖工业PLC信号采集、电池供电传感器 阅读详情

相关推荐

【Benchmark 性能测试全指南:从核心原理到 CINEBENCH 实战解析】

本文深度拆解基准测试(Benchmark)的底层逻辑,详解数据集、工作负载、度量指标三大核心要素,分步演示测试流程与统计分析要点。结合 CINEBENCH R23 实战案例,揭秘 CPU 性能评估方法论,助你掌握系统性能量化与优化的核心技能。

rong_ha_ha的博客 6327

【转】走近Linux开发者:Greg Kroah-Hartman

30 Linux Kernel Developers in 30 Weeks是Linux.com网站在2012年开始的一系列专题文章,该专题访问了三十位LinuxKernel 的开发者,其中包含了Linus Torvalds和Greg Kroah-Hartman等广为人知的人士。这些人士所受访的问题包括:负责的项目、任职的公司、居住地、喜好的工具甚至是工作时会听的音乐等等。 对于想要了解内核开发的人而言,这些文章值得一读,而且可以从中了解一些信息,例如多数的受访者习惯于使用命令行界面的工...

lijiuyangzilsc的专栏 1646

Windows 10下Carla 0.9.15安装避坑指南:从下载到运行的全流程解析

本文详细解析了在Windows 10系统上安装和运行Carla 0.9.15自动驾驶仿真平台的全流程。内容涵盖从系统环境准备、资源下载、Python依赖安装,到首次启动验证及常见错误(如DLL缺失、显卡驱动问题)的深度解决方案,旨在帮助用户快速搭建稳定的开发环境,并运行第一个自动驾驶Python脚本。

alice7model的博客 546

Greg Kroah-Hartman宣布,将Android 代码从 Linux kernel 代码库中删除

<br />最近开源界一件比较大的事情就是Linux Kernel的维护者Greg Kroah-Hartman宣布,将Android 代码从 Linux kernel 代码库中删除,此事对于普通用户可能并没有什么影响,但对于开发者来说,尤其是开源社区的开发者来说,算是一颗重磅炸弹吧。笔者听说这个消息的时候也是很惊奇,Android不是一直都以开源身份自居吗?也正因为如此才被广大开源社区的用户所支持吗?今天笔者看到一篇描述通透的评论,于是转过来,希望更多朋友可以了解事情的始末和真相:<br /><br />满

elong2004的专栏 3041

手把手教你用C语言给STM32写一个Modbus RTU从机库(含完整项目源码)

在工业自动化领域,Modbus RTU协议因其简单可靠的特点,成为RS485总线通信的事实标准。对于嵌入式开发者而言,为STM32等微控制器实现一个高效的Modbus RTU从机协议栈,是开发智能传感器、执行器等设备的必备技能。Modbus RTU从机的核心是一个状态机,需要处理帧接收、CRC校验、功能码解析和响应生成等环节。工业现场总会遇到意想不到的干扰情况,一个健壮的协议栈应该能够优雅地处理各种异常场景,而不是简单地崩溃或死锁。工业现场环境复杂,协议栈必须具备完善的异常处理机制。

weixin_30561425的博客 516

Rope DFM一键整合包AI脸部替换教程:使用DeepFaceLab模型实现专业级视频和直播脸部替换

在AI脸部替换工具中,Rope凭借其出色的自动遮罩处理拔得头筹,结合DFM模型中的DFL XSeg遮罩处理,效果更是提升了一个台阶。因为在训练模型时,它已经通过大量的侧脸图片进行训练,达到了单张图片无法企及的效果。然而,想要通过DeepFaceLab获得专业级的效果,不仅难度大,时间成本也相当高,训练模型也是个不小的挑战。举个简单的例子,使用图片脸部替换时,如果佩戴眼镜,脸部替换后的可能会显得很假。另外,在视频中,比如歌手演唱时,话筒遮挡住脸部,这种场景也可以通过遮罩训练后的模型来处理,呈现出更逼真的效果。

m0_72580657的博客 8160

【Linux牛人之02-Greg Kroah-Hartman】“Linux二把手“-稳定分支stable维护者-Greg Kroah-Hartman

要点: 算得上是Linux内核的二号人物了 《Linux驱动程序》的作者 Linux稳定发布分支的维护者 中文版 看英文版(更有味道) 其他相关链接 http://www.kroah.com/log/about/ Greg的个人博客 http://www.kroah.com/log/linux/howto.html 如何做Linux开发者 http://www.kroah.com/linux/ Greg的内核介绍 LWN社区(linux daily news)的Greg相关:https://lwn.

技术札记 646

Qt C++ 信号发生器控制软件

waveformComboBox->addItems({"正弦波", "方波", "三角波", "锯齿波", "脉冲波"});frequencyLabel = new QLabel("频率 (Hz):");amplitudeLabel = new QLabel("幅值 (V):");offsetLabel = new QLabel("直流偏移 (V):");} else if (currentWaveform == "三角波") {} else if (currentWaveform == "方波") {

寒寒豆豆软件公司的博客 124

我有一个大胆的想法:呼吁Linus延迟退休,继续为惠益全人类的Linux内核奋斗30年

因为成为内核维护者,你必须一直存在,这意味着你每天都要在电脑前阅读来自全球各地的电子邮件,对邮件做出反应,就像我这 30 年来做的一样,从不间断。“当我退休时,我为我的项目留下了详细的文档和示例伪代码,据我估计,这些代码,文档和示例伪代码将使开发团队足足工作 8 个月才能完全接手项目。也就是说,Linux 内核项目要吸引更多年轻开发者的加入,所需要解决的问题已经不仅仅是文档,管理一切事务的组织机构是必须的。建立由浅及深、完善的学习文档和示例是一个项目吸引新人才加入所必需的,Linux 内核项目也是如此。

IT界那些事儿 373

手把手教程 | 使用 apktool 修改已发布 APK 的版本号与版本名称

摘要:本文介绍如何使用apktool工具直接修改APK版本信息,适用于版本回滚、多版本测试等场景。详细步骤包括反编译APK、修改版本号、重打包、对齐优化和重新签名,并分享了反编译相关实用知识。该方法无需源代码参与,但需注意修改后的APK必须重新签名才能安装。最后强调应在合法范围内使用反编译技术。

学无止境 825

情感分析在金融领域的应用:舆情影响股价预测

我们都知道,股价的波动受到多种因素的影响,而大众的情绪和看法就是其中很重要的一部分。我们在日常生活中都有根据别人的评价来判断事物好坏的经验,在金融市场里,舆情就像是大众对某家公司的集体评价,它能反映出市场参与者的情绪和预期。学习这方面的知识,能帮助投资者更好地把握市场动态,做出更明智的投资决策,无论是个人投资者还是金融机构的分析师,都能从中受益。有一天,你看到某家知名企业被曝光了严重的产品质量问题,新闻铺天盖地,股民们也都在热议纷纷,负面情绪弥漫。这时,你会不会觉得这家公司的股价可能要下跌了呢?

AI 原生应用开发的博客 1145

Linux 内核“清洗”俄开发者?Linus 大佬亲自下场回复:水军别费力气了,我绝不撤回决定

近日,据俄罗斯新闻网站 OpenNET(这是一家关注自由开源软件的新闻网站)报道,11 名俄罗斯程序员已被从 Linux 内核开发者名单中除名。此次遭到驱逐的俄罗斯程序员,此前负责的是对 Linux 内核项目特定领域进行维护的关键成员。这一消息由 Linux 主要内核开发成员 Greg Kroah-Hartman 对外公布,他负责维护 Linux 软件的稳定版本。据称除名的理由是为了遵守“各种合规要求”,且人员变动已经于 10 月 18 日开始实施。

IT界那些事儿 1万+

基于 ESP32+IMU+BLE HID 的低延迟无线体感游戏控制器设计与实现

本文设计的基于 ESP32 的低延迟无线体感游戏控制器,通过合理的硬件选型与软件优化,实现了体感姿态感知与无线低延迟传输的核心功能。硬件上采用 ESP32+MPU6050+TP4056 的低成本方案,接线简单、便携性强;软件上通过轻量化库、互补滤波算法与非阻塞 BLE 传输,有效降低了系统延迟,满足体感游戏的使用需求。

weixin_42300449的博客 399

政治正确?Linux把一大堆毛子开发者移出了开发者列表

日前,Linux内核主要维护者之一Greg Kroah-Hartman (Greg K-H)提交了一项不寻常的“文档”更新,将数名具有顶级域名邮箱的维护者,和一名明确为俄罗斯身份的维护者从MAINTAINERS(维护者名录)文件除名。这一提交已于上周日被Linus Torvalds拉取并包含于6.12-rc4版本的代码中。

rayylee 1581

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

俄开发者遭Linux封杀?11人被无故除名,俄罗斯扬言:那我们自建社区!

整理| 屠敏出品 | 优快云(ID:优快云news)一夕之间,“开源无国界”这句被很多人提及了多年的 Slogan 被蒙上了沉重的阴影。起因是一周前,Linux 社区在没有提前通知的情况下,突然除名了 11 位俄罗斯开发人员。事件经过多日发酵,据俄罗斯当地媒体RBK 最新报道,俄罗斯数字发展部似乎有意对这一事件采取「反击」行动——计划创建一个独立的 Linux 开发社区,旨在与愿意合作的国...

优快云资讯 8729

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Linux 5.19内核终于接纳了Zstd压缩固件更新

赶在本周的首个候选版本(rc1)发布之前,Greg Kroah-Hartman 也于上周开始向 Linux 5.19 提交其所负责监督的新版内核的各领域功能查询请求。而随新内核驱动程序一同到来的,就有大家期待已久的固件级 Zstd 压缩支持。据悉,由 Facebook 开发的 Zstandard 实时数据压缩算法,具有兼顾快速解压缩和节省磁盘空间的特性。此前多年,陆续有人提出过 Linux 内核补丁,以添加对 Zstd 压缩的固件处理支持,并希望取代以 XZ 为代表的现有压缩方案。四月份的时候,Zstd 压

tgs2033的博客 668

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Greg Kroah-Hartman LDD3 作者,LKN作者,linux driver 开发者,新闻两则,因为过时了所以就放我这个垃圾博客里吧...

Android 和内核社区 —— Greg Kroah-Hartman 关于 Android Code 被移除的说明 lishen| 2 年前 归类于Google/Android Tags:Greg Kroah. From linux kernel monkey log| 李莘译,转载请注明 ifanr 译文链接。 2.6.33 版内核移除了Andirod的代码。...

weixin_30877227的博客 286

开源软件概论 第一次作业

我的开源软件概论的第一次作业,对于开源提的5个小问题

Nana7mii的博客 1168

LWN: 非GPU的加速器驱动绕过了合入原则!

关注了就能看到更多这么棒的文章哦~Not-a-GPU accelerator drivers cross the lineBy Jonathan CorbetAugust 26, 2021...

Linux News搬运工 686

使用 ChromeDriverServer 加速

使用 ChromeDriverServer 加速

Matthew的博客 978

AI全栈实战 | 3.9-01 爬虫入门:requests 加 BeautifulSoup 三分钟跑通,但 90% 的人栽在这 4 个“礼貌“问题上

⚠️:本文内容仅用于。请遵守目标站点的服务条款与相关法律法规,不得对目标服务造成负担,不得采集、传播个人隐私数据。技术是中性的,边界在你手里。爬虫的入门技术(requests 发请求 + BeautifulSoup 解析)三分钟就能学会。真正区分"会用爬虫"和"会做爬虫的人"的,是这篇我们跑通"请求→解析→存储"的最小闭环,然后重点把"合规与礼貌"这根弦给你绷上。

源码获取 | 运行部署 | 定制二开修改,如果回复不及时请耐心等待,请见谅。 390

从一段视频到可漫游的 4D 有声场景:思路拆解与最小复现手记

只需一段手机视频,你就能生成可"走进去"的 4D 有声场景:转头时狗叫声方向随之变化,走近时声音更清晰。本文拆解 Video-to-4DAVScene 的核心思路,手把手带你用几十行 Python 搭出最小管线,把视频中的运动物体变成带空间位置的声源,并附上三个真实踩坑的排障经验,代码可直接跑。🎧

helloagent的博客 228

Python+Agent入门笔记(二):列表推导式、模块和异常,这些写 Agent 前得会

接上一篇《Python+Agent入门笔记(一)》。基础语法跑通之后,这篇聊几块日常写脚本绕不开的东西。还是按 JS/Go 开发者的视角写,尽量记录我实际卡过的地方。

qq_41241612的博客 430

详解Python条件语句

在 Python 中,if...else 是一种条件语句,可以根据给定的条件执行不同的操作。这个语句通常用于控制程序的流程。

2601_96798737的博客 205

微调数据集构建:清洗、标注、格式转换完整流程

摘要解决微调数据直接抓取导致的噪声污染、模式崩溃与Token错位问题。适用于需为大模型SFT阶段构建高质量训练集的数据与算法工程师。读完可获得包含启发式清洗、MinHash去重及ChatML格式对齐的完整可运行数据流水线。关键词数据清洗、MinHash去重、数据标注、ChatML、SFT数据集、数据配比背景与问题大模型微调效果的上限由数据质量决定,直接使用未经处理的原始语料极易引发模型复读、幻觉与指令遵循能力退化。

2402_85729970的博客 485

Python3 协程:异步编程的核心机制与实战

协程是解决I/O密集型任务等待瓶颈的高效机制,相比线程更轻量、无锁开销。从yield到async/await的演进,使异步编程语义清晰、易于理解。通过async/await可实现并发执行多个任务(如gather、create_task),显著提升网络请求、爬虫等场景性能。关键在于使用异步库(如aiohttp)替代同步库,避免阻塞事件循环。合理控制超时与并发数,才能发挥协程最大优势。

Lxn2zh的博客 159
上一篇: LWN:近期在讨论的一些内存管理相关patch!
下一篇: LWN: kernel warning 的时候应该怎么处理?
LinuxNews搬运工
博客等级 码龄7年 438粉丝 20原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值