|
|
@@ -0,0 +1,30 @@
|
|
|
+package main
|
|
|
+
|
|
|
+import (
|
|
|
+ "fmt"
|
|
|
+ "log"
|
|
|
+ "net/http"
|
|
|
+ "sync"
|
|
|
+)
|
|
|
+
|
|
|
+var mu sync.Mutex
|
|
|
+var count int
|
|
|
+
|
|
|
+func main() {
|
|
|
+ http.HandleFunc("/", handler_)
|
|
|
+ http.HandleFunc("/count", counter)
|
|
|
+ log.Fatal(http.ListenAndServe("localhost:8000", nil))
|
|
|
+}
|
|
|
+
|
|
|
+func handler_(w http.ResponseWriter, r *http.Request) {
|
|
|
+ mu.Lock()
|
|
|
+ count++
|
|
|
+ mu.Unlock()
|
|
|
+ fmt.Fprintf(w, "URL.Path = %q\n", r.URL.Path)
|
|
|
+}
|
|
|
+
|
|
|
+func counter(w http.ResponseWriter, r *http.Request) {
|
|
|
+ mu.Lock()
|
|
|
+ fmt.Fprintf(w, "Count %d\n", count)
|
|
|
+ mu.Unlock()
|
|
|
+}
|