摘要: 文件操作命令 find find 用于在指定目录下查找文件或子目录,如果不指定查找目录,则在当前目录下查找 命令格式:find path -option [-print] [ -exec/-ok command {} \ ]; 「print」:将匹配的文件输出到标准输出 「exec」:对匹配的文件作 阅读全文
posted @ 2021-07-24 15:06 牛奔 阅读(1289) 评论(1) 推荐(1)
摘要: 前言 goroutine 初始栈很小(≈2KB),但可以自动变大。 那它是怎么做到的? 一、先说结论 goroutine 的栈扩容是通过: 在函数调用前做“栈空间检查”,如果不够,就调用 runtime 进行扩容。 关键机制是: stack guard + morestack 二、goroutine 阅读全文
posted @ 2026-02-07 22:11 牛奔 阅读(3) 评论(0) 推荐(0)
摘要: 前言 很多人听说: goroutine 很轻,可以开几十万 但为什么轻?到底轻在哪里? 我们从 内存、创建成本、切换成本、调度方式 四个维度拆开讲清楚。 一、最核心的一句话 goroutine 轻,是因为它是用户态调度 + 小栈 + 自己管理切换。 而线程: 是内核调度 + 大栈 + 内核切换。 差 阅读全文
posted @ 2026-02-07 22:02 牛奔 阅读(2) 评论(0) 推荐(0)
摘要: 前言 “能抢占”和“频繁抢占”是两回事。 如果抢占太频繁,会导致: 上下文切换开销大 cache 失效 调度成本增加 性能下降 所以 Go 的设计目标是: 能抢占,但不会乱抢占。 我们一步步讲清楚它是怎么控制频率的。 一、核心原则:不是随时抢占,而是“时间片 + 条件触发” Go 不会在每一行代码都 阅读全文
posted @ 2026-02-07 21:45 牛奔 阅读(3) 评论(0) 推荐(0)
摘要: 一、什么是“抢占式调度”? 先理解什么是“抢占”。 非抢占式(早期 Go) 早期 Go(1.14 之前): goroutine 只有在 函数调用 channel 操作 syscall runtime 检查点 才会被切换。 如果一个 goroutine 写成: for { } 会发生什么? 👉 它永 阅读全文
posted @ 2026-02-07 21:34 牛奔 阅读(4) 评论(0) 推荐(0)
摘要: 一、为什么需要调度模型? 先问一个问题: Go 里可以同时开成千上万个 goroutine,它是怎么做到的? 如果每个 goroutine 都对应一个操作系统线程,那系统早就炸了。 因为: 线程很重(几 MB 栈空间) 创建销毁成本高 线程切换开销大 所以 Go 自己实现了一套“用户级调度器”。 二 阅读全文
posted @ 2026-02-07 21:30 牛奔 阅读(2) 评论(0) 推荐(0)
摘要: 前言 作者:白玉光 正如李飞飞在她的自传中的说的:人工智能算法不是像传统算法那样,被告知该做什么,而是通过数据来学习该做什么,这也是本文想要表达的核心内容。 导读: 推开AI的门,你是站在门外怕迟到的人。很多人害怕迟到,害怕在众目睽睽之下,被视作一个犯错的学生。就如同,AI“呼的一下”就来了,并且发 阅读全文
posted @ 2026-02-07 15:57 牛奔 阅读(5) 评论(0) 推荐(0)
摘要: 前言 最近遇到一个很头疼的问题: 在 Docker 容器里用 Go/Python/Node 等发起 HTTPS POST 请求,总是卡死,报错: net/http: TLS handshake timeout 但奇怪的是:从容器里 ping 目标域名/IP 是通的,而且延迟也很正常 用 curl - 阅读全文
posted @ 2026-02-07 15:30 牛奔 阅读(2) 评论(0) 推荐(0)
摘要: 前言 在 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)
摘要: 前言 提交并 push 完代码后,发现 Git 的 author name / email 设置错了,导致贡献记录、头像显示异常。 修复思路与步骤(已验证可行) 永久修正本地配置(防后续出错) git config user.name "正确用户名" git config user.email "正 阅读全文
posted @ 2026-01-17 09:50 牛奔 阅读(70) 评论(0) 推荐(0)
摘要: 前言 在使用 Docker Compose 管理容器时,经常遇到一种情况:修改了 compose.yaml(或 docker-compose.yaml)中的配置(如端口、环境变量、卷挂载、command 等),执行 docker compose restart 后却没有任何变化。 核心原因 dock 阅读全文
posted @ 2026-01-14 11:25 牛奔 阅读(23) 评论(0) 推荐(0)