会员
周边
新闻
博问
闪存
众包
赞助商
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
牛奔
每个优秀的人,都有一段沉默的时光,那段时光,是付出了很多努力,却得不到结果的日子,我们把它叫做扎根。
博客园
首页
新随笔
联系
订阅
管理
[置顶]
程序员必看 Linux 常用命令(重要)
摘要: 文件操作命令 find find 用于在指定目录下查找文件或子目录,如果不指定查找目录,则在当前目录下查找 命令格式:find path -option [-print] [ -exec/-ok command {} \ ]; 「print」:将匹配的文件输出到标准输出 「exec」:对匹配的文件作
阅读全文
posted @ 2021-07-24 15:06 牛奔
阅读(1289)
评论(1)
推荐(1)
2026年2月7日
goroutine 栈是如何“自动扩容”的?
摘要: 前言 goroutine 初始栈很小(≈2KB),但可以自动变大。 那它是怎么做到的? 一、先说结论 goroutine 的栈扩容是通过: 在函数调用前做“栈空间检查”,如果不够,就调用 runtime 进行扩容。 关键机制是: stack guard + morestack 二、goroutine
阅读全文
posted @ 2026-02-07 22:11 牛奔
阅读(3)
评论(0)
推荐(0)
为什么 goroutine 比线程轻?
摘要: 前言 很多人听说: goroutine 很轻,可以开几十万 但为什么轻?到底轻在哪里? 我们从 内存、创建成本、切换成本、调度方式 四个维度拆开讲清楚。 一、最核心的一句话 goroutine 轻,是因为它是用户态调度 + 小栈 + 自己管理切换。 而线程: 是内核调度 + 大栈 + 内核切换。 差
阅读全文
posted @ 2026-02-07 22:02 牛奔
阅读(2)
评论(0)
推荐(0)
Go 如何避免频繁抢占?
摘要: 前言 “能抢占”和“频繁抢占”是两回事。 如果抢占太频繁,会导致: 上下文切换开销大 cache 失效 调度成本增加 性能下降 所以 Go 的设计目标是: 能抢占,但不会乱抢占。 我们一步步讲清楚它是怎么控制频率的。 一、核心原则:不是随时抢占,而是“时间片 + 条件触发” Go 不会在每一行代码都
阅读全文
posted @ 2026-02-07 21:45 牛奔
阅读(3)
评论(0)
推荐(0)
Go 是如何做抢占式调度的?
摘要: 一、什么是“抢占式调度”? 先理解什么是“抢占”。 非抢占式(早期 Go) 早期 Go(1.14 之前): goroutine 只有在 函数调用 channel 操作 syscall runtime 检查点 才会被切换。 如果一个 goroutine 写成: for { } 会发生什么? 👉 它永
阅读全文
posted @ 2026-02-07 21:34 牛奔
阅读(4)
评论(0)
推荐(0)
如何理解 Go 的调度模型,以及 G / M / P 各自的职责
摘要: 一、为什么需要调度模型? 先问一个问题: Go 里可以同时开成千上万个 goroutine,它是怎么做到的? 如果每个 goroutine 都对应一个操作系统线程,那系统早就炸了。 因为: 线程很重(几 MB 栈空间) 创建销毁成本高 线程切换开销大 所以 Go 自己实现了一套“用户级调度器”。 二
阅读全文
posted @ 2026-02-07 21:30 牛奔
阅读(2)
评论(0)
推荐(0)
这大概是我读过关于AI大模型最全面、好读又易懂的文章了
摘要: 前言 作者:白玉光 正如李飞飞在她的自传中的说的:人工智能算法不是像传统算法那样,被告知该做什么,而是通过数据来学习该做什么,这也是本文想要表达的核心内容。 导读: 推开AI的门,你是站在门外怕迟到的人。很多人害怕迟到,害怕在众目睽睽之下,被视作一个犯错的学生。就如同,AI“呼的一下”就来了,并且发
阅读全文
posted @ 2026-02-07 15:57 牛奔
阅读(5)
评论(0)
推荐(0)
Docker 容器 HTTPS 请求超时(TLS handshake timeout),原来是 MTU 在捣乱
摘要: 前言 最近遇到一个很头疼的问题: 在 Docker 容器里用 Go/Python/Node 等发起 HTTPS POST 请求,总是卡死,报错: net/http: TLS handshake timeout 但奇怪的是:从容器里 ping 目标域名/IP 是通的,而且延迟也很正常 用 curl -
阅读全文
posted @ 2026-02-07 15:30 牛奔
阅读(2)
评论(0)
推荐(0)
Docker 容器内部访问不了外部网络,一招搞定 MASQUERADE 配置
摘要: 前言 在 Docker 环境中,容器默认使用私有 IP 段(如 172.17.0.0/16 或自定义的 172.18.0.0/16、172.20.0.0/16),这些地址在互联网上是不可路由的。要让容器能访问外部网络(如 ping 8.8.8.8、拉取镜像、访问 API),必须在宿主机上对容器发出的
阅读全文
posted @ 2026-02-07 15:29 牛奔
阅读(9)
评论(0)
推荐(0)
2026年1月17日
Git 提交后发现作者信息错了,如何安全修复已 push 的历史?
摘要: 前言 提交并 push 完代码后,发现 Git 的 author name / email 设置错了,导致贡献记录、头像显示异常。 修复思路与步骤(已验证可行) 永久修正本地配置(防后续出错) git config user.name "正确用户名" git config user.email "正
阅读全文
posted @ 2026-01-17 09:50 牛奔
阅读(70)
评论(0)
推荐(0)
2026年1月14日
Docker Compose 修改配置后 restart 不生效的原因及正确做法
摘要: 前言 在使用 Docker Compose 管理容器时,经常遇到一种情况:修改了 compose.yaml(或 docker-compose.yaml)中的配置(如端口、环境变量、卷挂载、command 等),执行 docker compose restart 后却没有任何变化。 核心原因 dock
阅读全文
posted @ 2026-01-14 11:25 牛奔
阅读(23)
评论(0)
推荐(0)
下一页
公告