首次提交:初始化项目代码

This commit is contained in:
sunct
2026-07-31 15:18:32 +08:00
commit d6393266b0
193 changed files with 14287 additions and 0 deletions
+51
View File
@@ -0,0 +1,51 @@
package main
import (
"fmt"
"runtime"
"sync"
"time"
)
var globalSum int64
// 进一步增加循环次数,单任务耗时延长到10秒以上
func longCPUTask(id int) {
localSum := int64(0)
loopCount := int64(500000000) * int64(id+1) // 循环次数:5e8→2e9(耗时≈10s→40s
for j := int64(1); j < loopCount; j++ {
localSum = (localSum + j*j%987654321) * 1000000007 % 123456789
if j%100000000 == 0 { // 极低频率写入全局变量,最大化独占P时间
globalSum = localSum
}
}
}
func main() {
runtime.GOMAXPROCS(1)
var wg sync.WaitGroup
startTime := time.Now()
taskDurations := make([]time.Duration, 4)
for i := 0; i < 4; i++ {
wg.Add(1)
id := i
go func() {
defer wg.Done()
taskStart := time.Now()
longCPUTask(id)
taskDurations[id] = time.Since(taskStart)
}()
}
wg.Wait()
totalDuration := time.Since(startTime)
fmt.Println("GOMAXPROCS=1")
sumDurations := time.Duration(0)
for i := 0; i < 4; i++ {
fmt.Printf("任务%d 耗时: %v\n", i, taskDurations[i])
sumDurations += taskDurations[i]
}
fmt.Printf("总耗时: %v, 4个任务之和: %v(接近)\n", totalDuration, sumDurations)
}