map_test.go 778 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. package jconcurrency
  2. import (
  3. "log"
  4. "testing"
  5. "time"
  6. //"github.com/orcaman/concurrent-map/v2"
  7. )
  8. func Test_map(t *testing.T) {
  9. //创建map[any]any
  10. jm := NewJM()
  11. //并发安全放值
  12. jm.Set("a", 1)
  13. jm.Set(1, 3)
  14. //判断值是否存在
  15. log.Println("key 1 :", jm.Has(1))
  16. //删除值
  17. jm.Del(1)
  18. log.Println("key 1 :", jm.Has(1))
  19. //如果不存在则放入
  20. jm.SetIfNoExists("a", 5)
  21. jm.SetIfNoExists("b", 6)
  22. //获取并删除
  23. log.Println(jm.GetAndDel("b"))
  24. log.Println(jm)
  25. }
  26. func Test_map2(t *testing.T) {
  27. jm := NewJM()
  28. for i := 0; i < 100000; i++ {
  29. jm.Set(i, i)
  30. }
  31. for i := 0; i < 2; i++ {
  32. go jm.Iter(func(k, v any) bool {
  33. if k == i {
  34. //暂停
  35. return false
  36. }
  37. return true
  38. })
  39. }
  40. time.Sleep(1 * time.Second)
  41. log.Println(jm.Len())
  42. }