This commit is contained in:
邹宗楠
2022-12-30 13:43:56 +08:00
parent dec4f3cd52
commit 3fa1e69892
3 changed files with 78 additions and 15 deletions

View File

@@ -1,6 +1,8 @@
package jdapi
import (
"fmt"
"sync"
"testing"
"git.rosy.net.cn/baseapi/utils"
@@ -121,3 +123,48 @@ func TestBatchUpdateCurrentQtys(t *testing.T) {
t.Log(utils.Format4Output(result, false))
//baseapi.SugarLogger.Debug(utils.Format4Output(result, false))
}
type Object2222 struct {
Clients map[string]int
*sync.RWMutex
}
func NewTcpClient222() *Object2222 {
t := &Object2222{
Clients: make(map[string]int),
}
t.RWMutex = new(sync.RWMutex)
return t
}
func TestLock(t *testing.T) {
obj := NewTcpClient222()
go func() {
fmt.Println("1")
for i := 0; i < 100000; i++ {
obj.setParam(utils.Int2Str(i), i)
}
}()
go func() {
fmt.Println("2")
for i := 0; i < 100000; i++ {
fmt.Println(obj.getParam(utils.Int2Str(i)))
}
}()
for i := 0; i < 100000; i++ {
fmt.Println(obj.Clients[utils.Int2Str(i)])
}
}
func (t *Object2222) setParam(key string, v int) {
t.Lock()
defer t.Unlock()
t.Clients[key] = v
}
func (t *Object2222) getParam(key string) int {
t.RLock()
defer t.RUnlock()
return t.Clients[key]
}