Go语言并发编程原理与实践:面试经验与必备知识点解析
// 假设我们有一个简单的HTTP服务器,我们想要记录每个请求的处理时间
import (
"log"
"net/http"
"time"
)
func main() {
http.HandleFunc("/", handler)
log.Fatal(http.ListenAndServe(":8080", nil))
}
func handler(w http.ResponseWriter, r *http.Request) {
start := time.Now()
defer func() {
log.Printf("请求处理耗时: %s", time.Since(start))
}()
// 处理请求的逻辑...
}
这段代码展示了如何在Go语言中使用defer
语句来记录HTTP请求的处理时间。当每个请求到达/handler
路径时,会记录下请求处理的开始时间,并在处理请求的函数退出时计算并记录处理该请求所需的时间。这种方式在并发环境下是安全的,并且可以帮助我们分析服务性能瓶颈。
评论已关闭