package jconcurrency import ( "fmt" "log" "testing" ) //调用并发包实现,只接收一个参数,构造一个结构体,使用的时候强转一下,如下。推荐 func Test_threadRunStruct(t *testing.T) { th := NewThreads(10, TFuncWithStruct) jm := NewJM() for i := 0; i < 1000; i++ { //调用方法时,传递结构体 th.Run(Args{i, jm}) } th.Wait() log.Println("====", len(jm.Data)) } type Args struct { num int jm *JyMap } //使用方法时,强转结构体 func TFuncWithStruct(s any) { as := s.(Args) as.jm.Set(as.num, as.num) } //调用并发包实现,只接收一个参数 func Test_threadRun(t *testing.T) { th := NewThreads(10, testFuncWithAny) for i := 0; i < 1000; i++ { th.Run(i) } } //一般实现,只接入一个any参数 func Test_threadCommon(t *testing.T) { th := NewThreads(10, nil) for i := 0; i < 1000; i++ { th.RunCommon(testFuncWithAny, fmt.Sprintf("AA%dAA", i)) } } func testFuncWithAny(a any) { log.Println(a) }