avatar
文章
6
标签
13
分类
2

主页
博文
  • 归档
  • 标签
  • 分类
生活
  • 音乐
  • 影视
友链
关于
龙火火的个人博客
主页
博文
  • 归档
  • 标签
  • 分类
生活
  • 音乐
  • 影视
友链
关于

龙火火的个人博客

(面试题)Netty 线程模型
发表于2026-03-11|更新于2026-03-11|后端开发|面试题•Netty•线程模型•Reactor
昨天面试一家公司,被问了一连串关于 Netty 线程模型的问题: “Netty 的 workerGroup 默认线程数是多少?”“为什么默认值是 CPU 核心数的两倍?”“EventLoop 为什么必须是单线程?”“那 Tomcat 为什么又需要那么多线程?Netty 为什么线程这么少?” 说实话,平时用 Netty 写写 demo 挺顺手,但被这么一串连问,脑子还是懵了一下。回去后认真整理了一遍,发现这些问题的背后,其实是对 网络编程模型、操作系统调度、以及应用场景 的综合理解。今天就把我的学习笔记分享出来,希望能帮到同样在准备面试的你。 1. Netty 线程模型概览Netty 是基于 Reactor 模式 实现的,典型的架构是 主从多线程模型: BossGroup:负责接收客户端连接,通常只需要 1 个线程(也可以多个,但一般没必要)。 WorkerGroup:负责处理连接的读写事件,默认线程数为 CPU核心数 × 2。 每个线程对应一个 EventLoop,每个 EventLoop 内部维护一个 Selector 和 任务队列,负责处理多个 Channel 的 IO 事件和 ...
(面试题)Redis实现 IP 维度滑动窗口限流实践
发表于2026-03-05|更新于2026-03-05|后端开发|Redis•限流•滑动窗口•面试题•分布式
引言在开发高并发系统时,限流是一个绕不开的话题。无论是为了保护后端服务不被突发流量打垮,还是为了防爬虫、防恶意攻击,限流都是最常用的手段之一。常见的限流算法有计数器(固定窗口)、滑动窗口、漏桶、令牌桶等。今天我们就来聊一聊如何用 Redis 的有序集合(ZSET)实现一个滑动窗口限流,并以 IP 维度限制 60 秒内最多 100 次请求为例,给出完整的设计思路和代码。 需求描述假设我们有一个公开的 API,需要根据调用方的 IP 地址进行限流: 任意时刻向前推 60 秒(滑动窗口) 同一个 IP 最多允许 100 次请求 这里强调”任意时刻”,意味着我们不能用固定时间窗口(比如每分钟重置一次),因为固定窗口在边界处可能允许瞬间两倍的流量。比如: 12:30:59 请求了 100 次 12:31:00 又请求了 100 次 那么在 12:30:30 ~ 12:31:30 这 60 秒内,实际发生了 200 次请求,显然违背了我们的限制。所以必须用滑动窗口来精确控制。 为什么不用 INCR 做固定窗口?很多初学者会想到用 Redis 的 INCR 配合过期时间来实现限流: 12IN ...
PaddlePaddle 飞桨实现GAN生成对抗网络生成MINIST手写数字图像
发表于2023-05-11|更新于2023-05-11|深度学习|paddlepaddle•飞桨•GAN
1234import paddlefrom paddle.nn import Conv2D, MaxPool2D, Linear, BatchNorm, Upsampleimport numpy as npimport matplotlib.pyplot as plt 1234train_reader = paddle.vision.datasets.MNIST(mode='train')print("训练集样本数:", len(train_reader))print("样本形状:", np.array(train_reader[0][0]).shape)print("标签形状:", np.array(train_reader[0][1]).shape) 123训练集样本数: 60000样本形状: (28, 28)标签形状: (1,) 1234567891011121314151617181920# 噪声维度Z_DIM = 100BATCH_SIZE = 128paddle.vision.set_im ...
别玩手机 图像分类比赛
发表于2023-05-10|更新于2023-05-10|深度学习|paddlepaddle•飞桨•图像分类
浙大宁波理工学院数据科学与大数据专业 别玩手机图像分类比赛 1 选手禁止互相抄袭,发现结果雷同者将取消成绩; 2 请在基线模型基础上修改代码,不允许使用第三方封装库、套件或者其他工具,否则做 0 分处理; 3 每位同学请独立完成比赛,不允许就比赛技术问题进行相互交流,更不允许索要代码,请自觉遵守规则,保持良好的品格; 4 晚上 12:00 以后不允许递交,否则做 0 分处理; 5 结果文件必须是程序生成,不允许手动修改或者后期处理。 赛题背景如今,手机已成为大众离不开的生活工具,而且它的迅速发展使得它的功能不再以通讯为主,手机逐渐发展为可移动的大众传播媒体终端设备,甚至可以比作为第五媒体。当今的大学生群体是智能手机使用者中的一支巨大的的队伍,零零后大学生在进入大学以来,学习生活中过度的依赖手机,甚至上课时忘记携带手机便会手足无措,神情恍惚。本比赛要求通过监控摄像头等拍摄到的画面判断画面中的人物是否正在使用手机 数据集介绍本比赛采用的数据集中,训练集共 2180 张使用手机的图片(位于目录 data/data146247/train/0_phone&#x ...
解决PaddlePaddle飞桨在迁移学习使用预训练模型时更改num_classes参数出现警告
发表于2023-05-10|更新于2023-05-10|深度学习|paddlepaddle•飞桨
当我们使用 PaddlePaddle 进行迁移学习的时候,直接导入模型虽然是可以的,但是总是会有个警告 如直接用官方的 resnet101 并加载预训练模型的话 1model = paddle.vision.models.resnet101(pretrained=True, num_classes=2) 会提示这些信息: 1234567model = paddle.vision.models.resnet101(pretrained=True, num_classes=2)W0508 14:42:41.530314 1313 device_context.cc:447] Please NOTE: device: 0, GPU Compute Capability: 7.0, Driver API Version: 11.2, Runtime API Version: 10.1W0508 14:42:41.535259 1313 device_context.cc:465] device: 0, cuDNN Version: 7.6./opt/conda/envs/python35 ...
PaddlePaddle 自动求导
发表于2023-03-09|更新于2023-03-09|深度学习|paddlepaddle•飞桨•自动求导
自动求导在 PaddlePaddle 中使用自动求导来计算导数。 要求:,绘制 和 的图像,不能使用 in[1] 12345678910111213141516import paddleimport numpy as npimport matplotlib.pyplot as plt%matplotlib inlinex = paddle.to_tensor(np.arange(-5, 5, 0.01), dtype="float32", stop_gradient=False)y = paddle.sin(x)paddle.autograd.backward(y)dydx = x.gradx, y, dydxplt.plot(x, y)plt.plot(x, dydx)plt.show() output[1] APIbackwardpaddle.autograd.backward(tensors, grad_tensors=None, retain_graph=False) 计算给定的 Tensors 的反向梯度。 参数 tensors (list[Te ...
1
avatar
Long Yan
Talk is cheap, show me the code.
文章
6
标签
13
分类
2
Follow Me
公告
This is my Blog
最新文章
(面试题)Netty 线程模型2026-03-11
(面试题)Redis实现 IP 维度滑动窗口限流实践2026-03-05
PaddlePaddle 飞桨实现GAN生成对抗网络生成MINIST手写数字图像2023-05-11
别玩手机 图像分类比赛2023-05-10
解决PaddlePaddle飞桨在迁移学习使用预训练模型时更改num_classes参数出现警告2023-05-10
分类
  • 后端开发2
  • 深度学习4
标签
线程模型 飞桨 Netty 图像分类 Reactor 分布式 自动求导 限流 Redis 面试题 paddlepaddle 滑动窗口 GAN
归档
  • 三月 20262
  • 五月 20233
  • 三月 20231
网站资讯
文章数目 :
6
本站总字数 :
15k
©2020 - 2026 By Long Yan
框架 Hexo|主题 Butterfly
This is my Blog