gin go并發(fā)案例

通過(guò)管道進(jìn)行處理機(jī)制

package main

import (

"fmt"

"github.com/gin-gonic/gin"

"io/ioutil"

"os"

"strconv"

)

var sema = make(chan struct{},1)

func main() {

r := gin.Default()

r.GET("/ping",func(c *gin.Context) {

c.JSON(200, gin.H{

"message":"pong",

})

})

r.GET("/test",func(context *gin.Context) {

file2, _ := os.OpenFile("./3.txt", os.O_RDWR|os.O_APPEND,0766)

defer file2.Close()

file2.WriteString("11\r\n");

quUser()

getU()

context.JSON(200, gin.H{

"message":"test",

})

})

r.Run(":3300")// listen and serve on 0.0.0.0:8080

}

func quUser() int {

sema <-struct{}{}

data, err := ioutil.ReadFile("./2.txt")

if err != nil {

}

balance, _ := strconv.Atoi(string(data))

balance = balance+1

? fmt.Println(balance,"存余額\r\n")

file, _ := os.OpenFile("./2.txt", os.O_RDWR,0766)

defer file.Close()

file.WriteString(strconv.Itoa(balance));

<-sema

return balance

}

func getU() {

sema <-struct{}{}

data, err := ioutil.ReadFile("./2.txt")

if err != nil {

}

balance, _ := strconv.Atoi(string(data))

fmt.Println(balance,"取余額\r\n")

<-sema

}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一、數(shù)據(jù)類型轉(zhuǎn)換 https://studygolang.com/articles/10838 package m...
    蓓蓓的萬(wàn)能男友閱讀 1,161評(píng)論 0 1
  • 轉(zhuǎn)發(fā)自:http://shanshanpt.github.io/2016/05/03/go-gin.html gi...
    dncmn閱讀 6,194評(píng)論 0 1
  • /* gotips_test.go: Golang速學(xué)速查速用代碼手冊(cè) Source: github.com/c...
    中v中閱讀 372評(píng)論 0 0
  • Notes Section 2, Program Structure nested block in if-els...
    keysaim閱讀 1,325評(píng)論 0 1
  • fmt格式化字符串 格式:%[旗標(biāo)][寬度][.精度][arg索引]動(dòng)詞旗標(biāo)有以下幾種:+: 對(duì)于數(shù)值類型總是輸出...
    皮皮v閱讀 1,217評(píng)論 0 3

友情鏈接更多精彩內(nèi)容