@@ -105,14 +105,26 @@ func Example_third() {
105105
106106 // allocate queue
107107 pool := workerpool .New (poolSize )
108+ worker := func (s string ) {
109+ defer wg .Done ()
110+ defer fmt .Println ("job " + s + " is done !" )
111+ fmt .Println ("job " + s + " is running .." )
112+ }
108113
109- // moc arg
114+ // mock arg
110115 argx := make ([]string , jobsAmount )
111116 for j := 0 ; j < jobsAmount ; j ++ {
112117 argx [j ] = "_" + strconv .Itoa (j ) + "_"
113118 }
114119
115- // assign job
120+ // start workers
121+ for i := 1 ; i <= workersAmount ; i ++ {
122+ if err := pool .AddWorker (worker ); err != nil {
123+ panic (err )
124+ }
125+ }
126+
127+ // assign jobs
116128 for i := 0 ; i < jobsAmount ; i ++ {
117129 go func (i int ) {
118130 if err := pool .Delegate (argx [i ]); err != nil {
@@ -121,24 +133,25 @@ func Example_third() {
121133 }(i )
122134 }
123135
124- worker := func (s string ) {
125- defer wg .Done ()
126- defer fmt .Println ("job " + s + " is done !" )
127- fmt .Println ("job " + s + " is running .." )
128- }
129-
130- // start workers
131- for i := 1 ; i <= workersAmount ; i ++ {
132- if err := pool .AddWorker (worker ); err != nil {
133- panic (err )
134- }
135- }
136-
137136 // clean up
138137 wg .Wait ()
139138 pool .Stop ()
140139
141- // fmt.Println("# hi: ok?")
142- // Output:
143- // # sq: let-me-check
140+ // Unordered output:
141+ // job _0_ is running ..
142+ // job _0_ is done !
143+ // job _1_ is running ..
144+ // job _1_ is done !
145+ // job _2_ is running ..
146+ // job _2_ is done !
147+ // job _3_ is running ..
148+ // job _3_ is done !
149+ // job _4_ is running ..
150+ // job _4_ is done !
151+ // job _5_ is running ..
152+ // job _5_ is done !
153+ // job _6_ is running ..
154+ // job _6_ is done !
155+ // job _7_ is running ..
156+ // job _7_ is done !
144157}
0 commit comments