-
2026-01-29 09:16:33
-
2026-01-29 10:01:06
- Go 字符串是不可变的吗?拼接性能对比
- Go字符串不可变,底层为只读字节数组加长度字段;修改实为指向新内存,原对象不变;拼接性能差异大,strings.Builder预分配容量最高效。
-
683
-
2026-01-29 10:01:58
-
2026-01-29 10:27:09
-
2026-01-29 11:15:09
-
2026-01-29 11:17:02
- Python TCP 服务端的正确实现方式
- socket.accept()后必须用新线程或异步处理,否则主线程阻塞在recv()会导致服务端无法接受新连接;多线程适合I/O密集低并发,asyncio适合高并发;不可混用settimeout()与setblocking(False);需正确处理客户端断开和发送异常;readexactly()适用于固定长度协议,read()适用于流式数据。
-
1000
-
2026-01-29 11:32:04
- Golang TLS 1.3 性能优化技巧汇总
- Go1.12+默认启用TLS1.3(纯Go实现,不依赖系统OpenSSL),但需确保MinVersion≥TLS13、CipherSuites包含TLS_AES_128_GCM_SHA256等TLS1.3套件,且SessionTicketsDisabled未禁用、SessionTicketKey跨实例共享以启用ticket复用。
-
585
-
2026-01-29 11:42:09
- Linux 进程调度器的工作原理解析
- Linux进程调度器按实时优先于普通、同级按vruntime最小原则选择下一个进程:实时进程(SCHED_FIFO/RR/DEADLINE)独占调度优先权;普通进程由CFS通过红黑树取最小vruntime节点实现长期公平。
-
725
-
2026-01-29 12:00:50
-
2026-01-29 12:06:03
- 用 WaitGroup + channel 实现批量并发任务
- WaitGroup负责等待所有goroutine结束,channel负责传递结果或协调节奏;正确做法是启动前wg.Add(n),每个goroutine结尾deferwg.Done()后再发结果到channel,并在所有发送完成后关闭channel。
-
973