gin go并发案例

通过管道进行处理机制

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

}

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 一、数据类型转换 https://studygolang.com/articles/10838 package m...
    蓓蓓的万能男友阅读 4,761评论 0 1
  • 转发自:http://shanshanpt.github.io/2016/05/03/go-gin.html gi...
    dncmn阅读 11,276评论 0 1
  • /* gotips_test.go: Golang速学速查速用代码手册 Source: github.com/c...
    中v中阅读 2,593评论 0 0
  • Notes Section 2, Program Structure nested block in if-els...
    keysaim阅读 5,005评论 0 1
  • fmt格式化字符串 格式:%[旗标][宽度][.精度][arg索引]动词旗标有以下几种:+: 对于数值类型总是输出...
    皮皮v阅读 4,818评论 0 3

友情链接更多精彩内容