《Grokking Concurrency》读后感

高云FPGA PLL IP核实战:手把手教你用GW5A芯片生成多路时钟(附Modelsim仿真避坑指南) 本文详细介绍了高云FPGA GW5A芯片中PLL IP核的配置与仿真全流程,特别针对Modelsim仿真中的常见陷阱提供了避坑指南。从环境准备、IP核精细配置到Testbench编写和板级验证,手把手教你生成多路时钟信号,并分享时钟质量验证和性能优化的实用技巧。 阅读详情

一、 为什么读这本书?

1.在工作项目中,有些项目用多线程(如:threading.Thread) , 有些项目用(如:multiprocess.pool), 也有些项目用到协程(如:asyncio)。但是什么时候用哪种技术,自己还不是很了解,从而就无法判断这样用到底好不好,所以想找本书看看,从而梳理清楚。

2.曾经有一个 Python 项目,虽然用了多进程,但是还是出现了请求处理不过来的情况,虽然该项目在后续选择了 Java 技术栈解决了,但这个问题我却始终无法忘记,所以平时留意并发相关的书,看是否能找到解决方案。

因为《Grokking Concurrency》的示例代码使用 Python 语言实现,同时是 2024 年出版的,书中代码不至于无法运行,所以选择阅读该书来了解并发编程。

二、这本书写了什么?

本书主要分为两部分,第一部分介绍了并发的基础:程序,进程,线程,协程;第二部分介绍了并发编程中常遇到的问题:竞态条件,死锁,饥饿等。

本书 304 页,从 2025 年 11 月 10 日至 2025 年 12 月 16 日,期间断断续续花了 23 天阅读完《Grokking Concurrency》。

三、这本书特点

1.重点讲明白了为什么(why)。

这是这本书最大的特点,这本书不是在罗列概念,而是从计算机硬件逐渐展开描述,引入相关的概念。逻辑非常强,读完之后就明白了这个某个概念是什么?为什么要引入这个概念。如我自己平时就很不理解“线程”和“协程”这两个概念,看完之后如醍醐灌顶——要理解线程,要先理解程序的执行原理(program>instruction);而要理解协程则要先理解线程切换需要消耗资源。

2.很多无意义的比喻和插图。

虽然作者想表达:From symphony orchestras to hospital waiting rooms, and from fast food processes to home maintenance, we’ve drawn comparisons to help you understand complex topics(从交响乐团到医院候诊室,从快餐加工到家庭维修,我们通过类比来帮助理解复杂的主题)。说实话,与其做类比,不如拿实际项目举例。

再者,书中有很多插图,这大概也是该书中文版译名《并发编程图解》 的来源吧。不过,很多图无意义,不是画个图然后配些文字就叫“图解”啊。很多时候之所以需要“图”,是因为内容过于抽象,而我们受限于想象力,所以才需要图来帮助理解。话说回来,其实中译版取这个名字也不好,应该叫《深入理解并发编程》。如下面的图就没有什么意义:

在这里插入图片描述

3.缺乏实战项目

个人觉得作者确实写得很好,如果能补充一些 syncio 和 aiohttp 在实际项目中的应用就完美了。

四、这本书适合什么样的人?

回到“为什么阅读这本书”。我的第一个问题得到了回答:CPU密集型任务使用多进程,IO密集型使用多线程(阻塞IO)或者协程(非阻塞IO)。但第二个问题本书没有涉及。

本书是一本基础的并发入门书,使用 Python 实现代码。适合想了解并发的 Python 开发者。

五、阅读指数

按照 5 星标准,本书阅读指数 4 颗星(★★★★☆)。

六、参考资料

1. 编程

(1)豆瓣,Kirill Bobrov,《Grokking Concurrency》: https://book.douban.com/subject/36296797/

(2)豆瓣,基里尔·波波洛夫,《并发编程图解》:https://book.douban.com/subject/37364991/

(3)Github,源码: https://github.com/luminousmen/grokking_concurrency

2. 英语

(1) Etymology Dictionary:https://www.etymonline.com

(2) Cambridge Dictionary:https://dictionary.cambridge.org

欢迎搜索及关注:编程人(a_codists)

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

相关推荐

python调用海康工业相机并用opencv显示(整体实现)

python语言调用海康机器人(hikrobotics)工业相机 第一章 Python 语言下连接海康工业相机,并获取数据 文章目录 系列文章目录 前言 目录 python语言调用海康机器人(hikrobotics)工业相机 文章目录 前言 一、底层接口的准备 二、使用步骤 1.引入库 2.枚举设备 3.判断设备类型 4.输入连接设备 5.创建相机实例并创建句柄 6.打开设备 7.获取相关参数 8.主动获取图像 9.开启取流并获取每张.

qq_39570716的博客 5万+

grokking_concurrency:深入理解并发编程

grokking_concurrency:深入理解并发编程 项目介绍 在现代软件开发中,并发编程是一项至关重要的技能,特别是在处理多核处理器和分布式系统时。grokking_concurrency 是一本关于并发编程的开源书籍的源代码,由 Kirill Bobrov 编写,Manning Inc. 出版。本书旨在帮助开发者深入理解并发编程的概念、原理和实践。 项目技术分析 grokking_con...

gitblog_00287的博客 933

Rust 与 Golang 深度对决:从语法到应用场景的全方位解析

Rust 定义函数以fn关键字开头,参数需明确指定类型,返回值类型紧跟在箭头->之后。// 定义函数add,接收两个i32类型参数a和b,返回i32类型结果,功能为两数相加a + bRust 和 Golang 各有千秋,在不同领域展现独特优势。Rust 凭借强大的内存安全与高性能,在系统编程、网络编程以及对内存安全和性能要求高的场景中表现突出;Golang 则以简洁语法和出色并发性能,在云计算、分布式系统、Web 开发等领域占据一席之地。

muyouking 1769

《Grokking Concurrency》开源项目安装与配置指南

《Grokking Concurrency》开源项目安装与配置指南 1. 项目基础介绍 《Grokking Concurrency》是一个关于并发编程的开源项目,该项目是基于Kirill Bobrov所著的同名书籍《Grokking Concurrency》的代码示例。该项目旨在帮助开发者理解并发的概念,并掌握在Python中实现并发编程的方法。项目主要使用Python 3.9版本进行开发。 2....

gitblog_00432的博客 646

CST Studio Suite安装详细教程(附安装包)CST Studio Suite 2024超详细安装教程

CST Studio Suite 2024安装指南摘要:本文详细介绍了CST Studio Suite 2024电磁仿真软件的下载与安装流程,包含23个图文步骤说明,从解压安装包到配置许可证服务器。重点提示了以管理员身份运行、自定义安装路径等关键步骤,并提供了常见问题解决方案和入门技巧。该软件适用于天线设计、PCB分析等高频电磁场仿真,安装后需通过localhost:27000连接许可证服务器完成激活。

pythonqiang9的博客 1万+

[图解]SysML与EA实战:住宅安全系统接口块设计全解析

本文详细解析了使用SysML和EA工具进行住宅安全系统接口块设计的全流程。从系统上下文图入门到接口块实战技巧,涵盖块定义图与内部块图的视角转换,以及多图协同建模方法论。特别分享EA工具的高效操作指南和常见问题避坑建议,帮助工程师掌握精确信号定义、端口方向设置等关键技能,提升安防系统设计效率。

weixin_29234509的博客 332

【Grokking 小数据集 过拟合 泛化分析】Grokking: Generalization Beyond Overfitting on Small Algorithmic Datasets

在本文中,我们提议在通过算法生成的小型数据集上研究神经网络的泛化。在这种情况下,有关数据效率、记忆、泛化和学习速度等问题都可以得到详细研究。在某些情况下,我们发现神经网络可以通过 "摸索 "数据中的模式来学习,从而将泛化性能从随机概率水平提高到完美泛化水平,而且这种泛化性能的提高可以远远超过过度拟合的程度。我们还研究了泛化与数据集大小的函数关系,发现较小的数据集需要越来越多的泛化优化。

Arachis_X的博客 1669

重塑计算的五层蛋糕:解读黄仁勋CES2026演讲背后的AI新秩序与物理世界

2026年CES演讲揭示AI新纪元:从语言模型到物理智能 NVIDIA CEO黄仁勋在2026年CES演讲中描绘了计算产业的根本性变革。核心突破包括: 计算范式转移:从指令执行转向意图理解,智能体系统崛起 物理AI突破:发布Cosmos世界模型,通过合成数据训练AI理解物理定律 全新VeraRubin计算平台:6芯片协同设计,解决摩尔定律放缓与AI需求增长的矛盾 自动驾驶革命:推出具备推理能力的Alpamayo模型,实现L4级自动驾驶 演讲标志着AI正从数字世界迈向物理世界,NVIDIA通过全栈布局,正在重

老孙 | Ethan Sun 的博客:AI 智能体与 AI 原生软件的工程实践 1273

Grokking Concurrency 开源项目教程

Grokking Concurrency 开源项目教程 1. 项目介绍 Grokking Concurrency 是一本关于并发编程的书籍的代码示例,作者是 Kirill Bobrov,该书由 Manning Inc. 出版。本项目包含了书中所有示例代码,旨在帮助读者更好地理解并发编程的概念和技术。代码主要使用 Python 3.9 编写,并在 MacOS 和 Ubuntu 系统上进行了测试。请注...

gitblog_00437的博客 652

手势控制 Python !Leap Motion Python 开发教程 (二)

手势控制 Python !Leap Motion Python 开发教程 (二) 现在进入正题,我来给大家总结一下我在使用 Leap Motion 开发过程中的经验以及学到的东西,其中我会概括以及翻译官方给出的注释,为了让这些注释更加通俗易懂,让大家更好理解。 回顾 在上一篇文章中我们讲了如何配置 Leap Motion 的 Python 2.7 的开发环境,如果您还没有配置好您的开发环境,可以参...

成畅的博客 3191

Zabbix在Ubuntu 22.04上的性能优化与监控实战:从基础安装到高级配置

本文详细介绍了在Ubuntu 22.04系统上部署和优化Zabbix监控系统的完整流程,从基础安装到高级配置。内容包括MySQL数据库设置、Zabbix服务器与Web前端优化、性能调优策略以及实战监控场景应用,帮助用户构建高效的企业级监控解决方案。

sss66的博客 894

2025年12月文章一览

2026年的第 1 天,就遇到了中x银行app在7:30-8:00无法登录的破事。其它啥也不说了,祝各位同行技术精进,好好打磨产品,开发出好用的软件,不要折磨用户。不要总说自己遥遥领先,要踏踏实实做人。2025年总计阅读了9本书,其中最满意的是《Grokking Concurrency》,推荐给大家。其它也没啥想说的了,人到中年,不再矫情,也没有狂野的规划,努力工作,过好当下的日子。欢迎搜索及关注:编程人(a_codists)

codists的博客 325

移动支付APP(仿支付宝)

Toast.makeText(PayActivity.this, "支付失败:" + payResponse.getMsg(), Toast.LENGTH_SHORT).show();Toast.makeText(PayActivity.this, "支付失败:" + t.getMessage(), Toast.LENGTH_SHORT).show();Toast.makeText(PayActivity.this, "支付失败", Toast.LENGTH_SHORT).show();

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

2025年11月文章一览

时间就像一把回旋镖,2018年就买了《Python深度学习》,那时候因为电脑老旧加之工作与人工智能没有太大关系,就把这本书丢在一边了,没想到7年过去了,跌跌撞撞一路走来,工作又和人工智能扯上边了。虽然这本书已经出到第三版了,但既然买了第一版,还是从第一版看起吧,以便对得起我那买书的钱。《Grokking Concurrency》应该算是自己本年度看过最喜欢的一本书,那种想要一直阅读下去的感觉又回来了。本月在读:《Python深度学习》和《Grokking Concurrency》。

codists的博客 294

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

GO语言基础之并发concurrency

并发Concurrency   很多人都是冲着 Go 大肆宣扬的高并发而忍不住跃跃欲试,但其实从源码的解析来看,goroutine 只是由官方实现的超级“线程池”而已。不过话说回来,每个实例 4~5KB的栈内存占用和由于实现机制而大幅减少的创建和销毁开销,是制造 Go 号称的高并发的根本原因。另外,goroutine 的简单易用,也在语言层面上给予了开发者巨大的遍历。   高并发当中...

angzhan5306的博客 141

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

tech-interview-handbook 编码面试课程怎么选:按 Python、Java、JavaScript、C++ 对比时长、价格与内容

如果你在准备编码面试,并且倾向于用结构化的在线课程而不是纯刷题来准备,那么 tech-interview-handbook 仓库中的[课程对比页](https://link.gitcode.com/i/4f88d9d5d5782261136a297381872171)给出了一个可以直接照着筛选的清单:按 Python、Java、JavaScript、C++ 四种语言分别列出课程,并统一给出评分、时

gitblog_00581的博客 456

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

一条广告规则的一生:拆解 AdAway 的 Hosts 数据模型

为什么有的广告就是拦不掉?AdAway 这个开源的 Android 广告拦截应用给出的答案藏在它的数据库设计里:广告拦截要可靠,先得让每条规则的"下载、校验、入库、命中"都有据可查。本文从一条广告规则的全链路切入,把 AdAway 数据库设计背后的数据模型拆开讲清楚。 ## 全链路总览:一条拦截规则的一生 在动手看代码之前,先建立一张全局图。一条广告拦截规则在 AdAway 里要经历五步:

gitblog_00772的博客 857

从0到1:5分钟本地跑起The Delegation 3D AI办公室的完整指南

The Delegation 是一款免代码(no-code)的 3D AI 办公室实验场,让 AI 爱好者、教育工作者和创意开发者无需写一行代码,就能在一个"活"的 3D 办公室里探索、设计并交互 Agentic AI(智能体)系统:由 LLM 驱动的角色会在共享的虚拟工作区里自主协作——它们自主导航到工位坐下、干活、互相讨论,而你只需通过节点式编辑器和看板界面来指挥整个 AI 团队。 [![T

gitblog_01091的博客 493

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

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

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

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

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

helloagent的博客 218

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

python如何控制浏览器

Python 可以通过 Selenium、Playwright 等工具实现浏览器自动化,从打开网页到执行复杂交互操作均可脚本化完成。Selenium生态成熟

2601_96797912的博客 75
上一篇: 在 Pycharm 中 debug Scrapy 项目
下一篇: 2025年12月文章一览
codists
博客等级 码龄6年 1488粉丝 377原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值