|
@@ -3,6 +3,8 @@ package jconcurrency
|
|
|
import (
|
|
|
"log"
|
|
|
"testing"
|
|
|
+ "time"
|
|
|
+ //"github.com/orcaman/concurrent-map/v2"
|
|
|
)
|
|
|
|
|
|
func Test_map(t *testing.T) {
|
|
@@ -12,10 +14,10 @@ func Test_map(t *testing.T) {
|
|
|
jm.Set("a", 1)
|
|
|
jm.Set(1, 3)
|
|
|
//判断值是否存在
|
|
|
- log.Println("key 1 :", jm.IsExists(1))
|
|
|
+ log.Println("key 1 :", jm.Has(1))
|
|
|
//删除值
|
|
|
jm.Del(1)
|
|
|
- log.Println("key 1 :", jm.IsExists(1))
|
|
|
+ log.Println("key 1 :", jm.Has(1))
|
|
|
//如果不存在则放入
|
|
|
jm.SetIfNoExists("a", 5)
|
|
|
jm.SetIfNoExists("b", 6)
|
|
@@ -23,3 +25,26 @@ func Test_map(t *testing.T) {
|
|
|
log.Println(jm.GetAndDel("b"))
|
|
|
log.Println(jm)
|
|
|
}
|
|
|
+
|
|
|
+func Test_map2(t *testing.T) {
|
|
|
+
|
|
|
+ jm := NewJM()
|
|
|
+ for i := 0; i < 100000; i++ {
|
|
|
+ jm.Set(i, i)
|
|
|
+ }
|
|
|
+
|
|
|
+ for i := 0; i < 2; i++ {
|
|
|
+ go jm.Iter(func(k, v any) bool {
|
|
|
+ if k == i {
|
|
|
+ //暂停
|
|
|
+ return false
|
|
|
+ }
|
|
|
+ return true
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
+ time.Sleep(1 * time.Second)
|
|
|
+
|
|
|
+ log.Println(jm.Len())
|
|
|
+
|
|
|
+}
|