services := service.DemoService
go services.Handle(message)
go service.DemoService.Handle(message)
以上两种调用方式并发情况下结果有何差异?
package service
import (
"fmt"
"gin_bolin/app/common"
"gin_bolin/app/validate"
"sync"
"time"
)
var DemoService = demoService{}
type demoService struct {
Base
requestData *validate.Message
}
func (s *demoService) Handle(data *validate.Message) {
s.requestData = data
fmt.Println("接收到的参数", s.requestData)
time.Sleep(5 * time.Second)
fmt.Println("5秒后", s.requestData)
}
运行结果是go service.DemoService.Handle(message)方式调用的请求会出现数据覆盖问题