logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

Python的异步编程和协程

进程(Process):操作系统分配资源的最小单位,拥有独立内存空间。切换开销极高。线程(Thread):操作系统调度的最小单位,共享进程内存。由 OS 内核强制抢占式调度(Preemptive Scheduling),存在内核态/用户态切换开销,多线程共享数据需要加锁(Mutex)。协程(Coroutine)用户态的轻量级“线程”。它不需要操作系统内核参与调度,而是由程序员/运行时在代码层面协作

#python#开发语言
RuiZNClaude--S0---CLI设计

如果使用多线程(threading),在处理 CPU 密集型任务(如大数据的序列化/反序列化、本地上下文压缩、复杂 Prompt 解析或数值计算)时,多个线程无法利用多核 CPU 进行真正的并行计算,反而会因为线程频繁切换和锁竞争带来额外的性能开销。回答的核心逻辑是:结合 Python 的语言特性(GIL)与 AI Agent 的应用场景特点(既有 IO 密集又有 CPU 密集),从“解决什么问题

#python
RuiZNClaude--S0---CLI设计

如果使用多线程(threading),在处理 CPU 密集型任务(如大数据的序列化/反序列化、本地上下文压缩、复杂 Prompt 解析或数值计算)时,多个线程无法利用多核 CPU 进行真正的并行计算,反而会因为线程频繁切换和锁竞争带来额外的性能开销。回答的核心逻辑是:结合 Python 的语言特性(GIL)与 AI Agent 的应用场景特点(既有 IO 密集又有 CPU 密集),从“解决什么问题

#python
UE5 蓝图 FPS 02 Event Beginplay

潜台词:“我确定当前控制这个角色的是人类玩家,而不是 AI。请帮我把这个控制器的指针类型从通用的转换为合法的。连接到潜台词:“既然是人类玩家,那么他必然拥有连接着键盘鼠标的本地系统。现在,我要去调用他专属的输入子系统,把我们的 FPS 游戏按键映射表(IMC)激活。如果缺少了Cast这一步,后续的输入子系统节点在编译时就会因为“基类无此成员变量/函数”而直接报错。

文章图片
#ue5#c++
UE5 蓝图 FPS 01 Event Tick

在三维空间中,UE 采用的是左手坐标系(X向前的航空坐标系)。轴向欧拉角名称控制的动作鼠标的对应映射X 轴Roll(翻滚角)围绕前进轴旋转(就像飞机左右侧翻、歪脖子)通常不映射给鼠标Y 轴Pitch(俯仰角)围绕左右轴旋转(就像上下抬头、低头对应鼠标上下移动(Y轴)Z 轴Yaw(偏航角)围绕上下轴旋转(就像左右转头、转身对应鼠标左右移动(X轴)和这两个是自定义的函数或事件。它们顺着每帧的执行流被调

文章图片
#ue5#c++
GPU的硬件视角

从硬件视角看,CUDA 编程就是“用空间换取时间,用并行掩盖延迟”。极致缩水:砍掉逻辑控制,追求单位面积下的算力最大化。极致扩张:通过数以千计的寄存器支撑数万个线程同时驻留。深度思考:如果你在核函数里定义了太多的局部变量,导致每个线程占用的寄存器数量过多,硬件视角下会发生什么?SM 的寄存器总量是固定的。如果每个士兵背的包太重,一个班(SM)能容纳的士兵数量就会减少,进而导致延迟无法被掩盖。

文章图片
#GPU
到底了