自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 收藏
  • 关注

原创 HHKB Programming Contest 2023(AtCoder Beginner Contest 327) Virtual Participation

【代码】HHKB Programming Contest 2023(AtCoder Beginner Contest 327) Virtual Participation。

2023-11-16 11:51:22 115

原创 ◉ ABC318 (C-E

一个地区有N个编号为1到N的城镇,以及M条编号为1到M的道路。第i条道路双向连接了城镇A和城镇B,并且长度为Ci。找出从任意一个城镇出发到达另一个城镇的路线中,经过的道路的最大总长度,且不能经过同一个城镇超过一次。

2023-09-20 00:15:08 752 1

原创 EDU 144 && EDU 143

给定一个由字符"F"和/或"B"组成的字符串s。我们需要确定这个字符串是否是FB字符串的子串,即是否存在两个整数l和r(1≤l≤r),使得字符串flfl+1fl+2…fr正好等于s。FB字符串的构造方式如下。初始时,它是一个空字符串。我们按照从1开始的升序遍历所有的正整数,并对每个整数执行以下操作:如果当前整数能被3整除,则在FB字符串的末尾添加字符"F";如果当前整数能被5整除,则在FB字符串的末尾添加字符"B"。

2023-09-14 00:13:54 242 1

原创 Educational Codeforces Round 149 && Educational Codeforces Round 147

您被赋予一个整数 n,您想要得到这个整数。您拥有从1到k的每个整数的无限供应,除了整数x(根本没有整数x)。您可以任意取任意数量的这些整数(可能为零)。您能使取到的整数的和等于n吗?如果有多个答案,可以打印任意一个。

2023-09-13 00:51:10 210 1

原创 Educational Codeforces Round 152 (Rated for Div. 2)

【代码】Educational Codeforces Round 152 (Rated for Div. 2)

2023-09-12 00:21:10 199

原创 Yield读取文件的方式

【代码】Yield读取文件的方式。

2025-11-13 10:29:40 93

原创 Python 猴子补丁

它在某些特定情况下(如紧急修复、测试模拟)是一个非常有用的工具,但不应作为常规的编程手段。

2025-10-16 10:08:46 243

原创 python uvloop

如果你的asyncio应用遇到了性能瓶颈,或者你正在构建一个需要处理高并发连接的新项目,那么引入uvloop是一个非常值得尝试的选择。: Uvloop完全实现了asyncio的事件循环接口(API),这意味着你几乎不需要修改现有的asyncio代码,只需在程序启动时安装uvloop即可享受性能提升。通过结合libuv的强大I/O能力和Cython的编译优化,uvloop在处理网络请求等任务时,相比asyncio的默认事件循环,可以达到。在你的应用程序入口处,添加以下代码来安装uvloop的事件循环策略。

2025-10-16 09:29:25 261

原创 python asyncio 异步上下文管理

通过与 async with 语句结合使用,它可以确保诸如数据库连接、网络请求或文件句柄等资源,在异步代码块执行完毕后,无论成功与否,都能被正确地获取和释放。async def __aexit__(self, exc_type, exc_val, exc_tb): 当 async with 代码块执行完毕或因异常退出时,此方法会被调用。一个对象要成为异步上下文管理器,必须实现两个特殊的异步方法:__aenter__ 和 __aexit__。yield 语句之前的部分相当于 __aenter__ 的逻辑。

2025-10-16 09:25:21 361

原创 python 迭代器和生成器

特性迭代器 (Iterator)生成器 (Generator)实现方式通过实现 __iter__() 和 __next__() 方法的类来创建。通过使用 yield 关键字的函数来创建。代码复杂度相对复杂,需要编写一个完整的类。非常简洁,语法和普通函数类似。内存使用高效,按需加载。极其高效,值是动态生成的,不存储整个序列。7][9本质关系一个更通用的概念,定义了迭代的标准协议。5一种特殊的、用于快速创建迭代器的工具。所有生成器都是迭代器。5适用场景。

2025-10-14 09:39:15 895

原创 python asyncio:进程池和线程池的区别及应用

用进程池处理计算密集型任务,以突破GIL限制,实现真正的并行处理,压榨CPU性能。用线程池处理I/O密集型任务,以在等待I/O时切换线程,提高并发效率和程序响应速度。

2025-10-14 09:18:19 643

原创 python asyncio:什么是Future

asyncio.Future 是一个低级的可等待对象 (awaitable),它代表一个异步操作的最终结果。你可以把它想象成一个**“占位符”或者一个“承诺”**。当你启动一个异步操作时,你可能会立即得到一个 Future 对象。这个 Future 对象本身并没有结果,但它承诺“我将来会持有一个结果”。当这个异步操作完成时,结果就会被放入这个 Future 对象中。

2025-10-13 16:49:33 391

原创 python asyncio:什么是Task

在 Python 的 asyncio 库中,Task 是一种核心组件,专门用于调度和并发执行协程 (coroutine)。1][2你可以把 Task 理解为一个协程的“包装器”或“控制器”。3][4] 当你用 asyncio.create_task() 将一个协程包装成 Task 后,asyncio 的事件循环就会立即接收它,并安排它尽快运行。1][3][5。

2025-10-13 16:11:26 356

原创 python asyncio:什么是事件循环

事件循环(Event Loop)是异步编程的核心,可以把它想象成一个持续运行的中央调度器。监听任务:不断地检查是否有新的任务(例如,I/O操作完成、定时器到期、新的协程需要执行等)被注册。执行任务:当一个任务可以执行时(比如,等待的网络数据已经到达),事件循环就会运行它。暂停与切换:如果一个任务遇到了阻塞操作(比如,发出一个网络请求后需要等待响应),事件循环不会原地等待,而是会将这个任务暂停,然后立即切换去执行其他可以运行的任务。恢复任务。

2025-10-13 15:47:30 285

原创 python asyncio:什么是协程

在这些场景中,程序大部分时间都在等待I/O操作(如网络请求)完成,使用协程可以在等待期间切换去执行其他任务,极大地提高了程序的并发处理能力和资源利用率。简单来说,可以认为协程是用户态的线程,其调度和切换完全在用户空间完成,无需陷入操作系统内核,因此效率更高。] 这种协作式的多任务处理方式,使得协程在处理大量异步任务时,能以更少的资源消耗实现更高的并发性能。创建协程的内存成本远低于线程,可以在有限的内存中创建大量的协程。] 一个线程可以包含成千上万个协程。总而言之,协程并非要完全取代线程[

2025-10-13 15:44:57 716

原创 RAG中目前流行的分块模式(Chunking)

【代码】目前流行的分块模式(Chunking)

2025-05-28 18:08:03 293

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除