1
This commit is contained in:
@@ -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]
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user