初始化Go学习项目

This commit is contained in:
liumangmang
2025-12-26 17:56:02 +08:00
commit 7f4527d501
90 changed files with 3436 additions and 0 deletions

View File

@@ -0,0 +1,37 @@
package main
import (
"context"
"fmt"
"time"
)
// 模拟一个可能很慢的操作
func slowJob(ctx context.Context) error {
for i := 1; i <= 5; i++ {
select {
case <-ctx.Done():
fmt.Println("slowJob 被取消:", ctx.Err())
return ctx.Err()
default:
fmt.Println("slowJob 进行中 step", i)
time.Sleep(1 * time.Second)
}
}
fmt.Println("slowJob 正常完成")
return nil
}
func main() {
// 最多给 slowJob 3 秒时间
ctx, cancel := context.WithTimeout(context.Background(), 3*time.Second)
defer cancel()
fmt.Println("开始执行 slowJob超时时间 3 秒...")
if err := slowJob(ctx); err != nil {
fmt.Println("结束,原因:", err)
return
}
fmt.Println("结束:正常完成")
}