File tree 11 files changed +16
-14
lines changed
gomaxprocs/gomaxprocs-many-threads
11 files changed +16
-14
lines changed Original file line number Diff line number Diff line change 1
- TEXT ·StoreInt64(SB) , $ 0 - 16
1
+ TEXT ·StoreInt64(SB) , $ 0 - 16
2
2
MOVQ ptr + 0 (FP) , BX
3
3
MOVQ val + 8 (FP) , AX
4
4
XCHGQ AX , 0 ( BX )
Original file line number Diff line number Diff line change @@ -25,7 +25,7 @@ func main() {
25
25
var wg sync.WaitGroup
26
26
27
27
wg .Add (100 )
28
- for i := 0 ; i < 100 ;i ++ {
28
+ for i := 0 ; i < 100 ; i ++ {
29
29
go func (i int ) {
30
30
defer wg .Done ()
31
31
StoreInt64 (& count , int64 (i + 1 ))
Original file line number Diff line number Diff line change @@ -13,11 +13,11 @@ func main() {
13
13
wg .Add (5 )
14
14
go func () {
15
15
defer wg .Done ()
16
- count += 10
16
+ count += 10
17
17
}()
18
18
go func () {
19
19
defer wg .Done ()
20
- count -= 15
20
+ count -= 15
21
21
}()
22
22
go func () {
23
23
defer wg .Done ()
Original file line number Diff line number Diff line change @@ -38,5 +38,5 @@ func main() {
38
38
wg .Wait ()
39
39
40
40
// wait for one more Tracing event
41
- time .Sleep (2 * time .Second )
41
+ time .Sleep (2 * time .Second )
42
42
}
Original file line number Diff line number Diff line change @@ -12,7 +12,8 @@ func main() {
12
12
runtime .GOMAXPROCS (32 )
13
13
for i := 0 ; i < 32 ; i ++ {
14
14
go func () {
15
- for {}
15
+ for {
16
+ }
16
17
}()
17
18
}
18
19
time .Sleep (time .Minute )
Original file line number Diff line number Diff line change @@ -21,13 +21,13 @@ func main() {
21
21
}
22
22
23
23
func task1 (done chan struct {}) {
24
- time .Sleep (100 * time .Millisecond )
24
+ time .Sleep (100 * time .Millisecond )
25
25
fmt .Println ("task1" )
26
26
done <- struct {}{}
27
27
}
28
28
29
29
func task2 (done chan struct {}) {
30
- time .Sleep (200 * time .Millisecond )
30
+ time .Sleep (200 * time .Millisecond )
31
31
fmt .Println ("task2" )
32
32
done <- struct {}{}
33
33
}
@@ -38,7 +38,7 @@ func task3(done chan struct{}) {
38
38
}
39
39
40
40
func task4 (done chan struct {}) {
41
- time .Sleep (100 * time .Millisecond )
41
+ time .Sleep (100 * time .Millisecond )
42
42
fmt .Println ("task4" )
43
43
done <- struct {}{}
44
44
}
Original file line number Diff line number Diff line change @@ -19,6 +19,6 @@ func main() {
19
19
}
20
20
21
21
func work () {
22
- time .Sleep (500 * time .Millisecond )
22
+ time .Sleep (500 * time .Millisecond )
23
23
fmt .Println ("printing some stuff" )
24
24
}
Original file line number Diff line number Diff line change @@ -7,12 +7,12 @@ import (
7
7
8
8
func main () {
9
9
go work () // fork point
10
- time .Sleep (100 * time .Millisecond )
10
+ time .Sleep (100 * time .Millisecond )
11
11
fmt .Println ("done waiting, main exits" )
12
12
// join point
13
13
}
14
14
15
15
func work () {
16
- time .Sleep (500 * time .Millisecond )
16
+ time .Sleep (500 * time .Millisecond )
17
17
fmt .Println ("printing some stuff" )
18
18
}
Original file line number Diff line number Diff line change @@ -21,6 +21,6 @@ func main() {
21
21
}
22
22
23
23
func work () {
24
- time .Sleep (500 * time .Millisecond )
24
+ time .Sleep (500 * time .Millisecond )
25
25
fmt .Println ("printing some stuff" )
26
26
}
Original file line number Diff line number Diff line change 4
4
"sync"
5
5
"time"
6
6
)
7
+
7
8
// This is a small extras from the official docs
8
9
// --------------------------------------------
9
10
// Note that calls with a positive delta that occur when the counter is zero
Original file line number Diff line number Diff line change @@ -13,7 +13,7 @@ func main() {
13
13
wg .Add (10 )
14
14
now := time .Now ()
15
15
for i := 0 ; i < 10 ; i ++ {
16
- go work (& wg , i + 1 )
16
+ go work (& wg , i + 1 )
17
17
}
18
18
wg .Wait ()
19
19
fmt .Println ("elapsed:" , time .Since (now ))
You can’t perform that action at this time.
0 commit comments