1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- 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)
- }
|