examples update
Vladimir Bauer
9 years ago
| 28 | 28 |
defer wg.Done()
|
| 29 | 29 |
blockSize := rand.Intn(maxBlockSize) + 1
|
| 30 | 30 |
for i := 0; i < 50; i++ {
|
| 31 | |
time.Sleep(time.Duration(blockSize) * (50*time.Millisecond + time.Duration(rand.Intn(5*int(time.Millisecond)))))
|
|
31 |
sleep(blockSize)
|
| 32 | 32 |
bar1.Incr(1)
|
| 33 | 33 |
blockSize = rand.Intn(maxBlockSize) + 1
|
| 34 | 34 |
}
|
|
| 43 | 43 |
defer wg.Done()
|
| 44 | 44 |
blockSize := rand.Intn(maxBlockSize) + 1
|
| 45 | 45 |
for i := 0; i < 100; i++ {
|
| 46 | |
time.Sleep(time.Duration(blockSize) * (50*time.Millisecond + time.Duration(rand.Intn(5*int(time.Millisecond)))))
|
|
46 |
sleep(blockSize)
|
| 47 | 47 |
bar2.Incr(1)
|
| 48 | 48 |
blockSize = rand.Intn(maxBlockSize) + 1
|
| 49 | 49 |
}
|
|
| 58 | 58 |
defer wg.Done()
|
| 59 | 59 |
blockSize := rand.Intn(maxBlockSize) + 1
|
| 60 | 60 |
for i := 0; i < 80; i++ {
|
| 61 | |
time.Sleep(time.Duration(blockSize) * (50*time.Millisecond + time.Duration(rand.Intn(5*int(time.Millisecond)))))
|
|
61 |
sleep(blockSize)
|
| 62 | 62 |
bar3.Incr(1)
|
| 63 | 63 |
blockSize = rand.Intn(maxBlockSize) + 1
|
| 64 | 64 |
}
|
|
| 69 | 69 |
// p.AddBar(1) // panic: you cannot reuse p, create new one!
|
| 70 | 70 |
fmt.Println("stop")
|
| 71 | 71 |
}
|
|
72 |
|
|
73 |
func sleep(blockSize int) {
|
|
74 |
time.Sleep(time.Duration(blockSize) * (50*time.Millisecond + time.Duration(rand.Intn(5*int(time.Millisecond)))))
|
|
75 |
}
|
| 27 | 27 |
defer wg.Done()
|
| 28 | 28 |
blockSize := rand.Intn(maxBlockSize) + 1
|
| 29 | 29 |
for i := 0; i < 50; i++ {
|
| 30 | |
time.Sleep(time.Duration(blockSize) * (50*time.Millisecond + time.Duration(rand.Intn(5*int(time.Millisecond)))))
|
|
30 |
sleep(blockSize)
|
| 31 | 31 |
bar1.Incr(1)
|
| 32 | 32 |
blockSize = rand.Intn(maxBlockSize) + 1
|
| 33 | 33 |
}
|
|
| 41 | 41 |
defer wg.Done()
|
| 42 | 42 |
blockSize := rand.Intn(maxBlockSize) + 1
|
| 43 | 43 |
for i := 0; i < 100; i++ {
|
| 44 | |
time.Sleep(time.Duration(blockSize) * (50*time.Millisecond + time.Duration(rand.Intn(5*int(time.Millisecond)))))
|
|
44 |
sleep(blockSize)
|
| 45 | 45 |
bar2.Incr(1)
|
| 46 | 46 |
blockSize = rand.Intn(maxBlockSize) + 1
|
| 47 | 47 |
}
|
|
| 55 | 55 |
defer wg.Done()
|
| 56 | 56 |
blockSize := rand.Intn(maxBlockSize) + 1
|
| 57 | 57 |
for i := 0; i < 80; i++ {
|
| 58 | |
time.Sleep(time.Duration(blockSize) * (50*time.Millisecond + time.Duration(rand.Intn(5*int(time.Millisecond)))))
|
|
58 |
sleep(blockSize)
|
| 59 | 59 |
bar3.Incr(1)
|
| 60 | 60 |
blockSize = rand.Intn(maxBlockSize) + 1
|
| 61 | 61 |
}
|
|
| 66 | 66 |
// p.AddBar(1) // panic: you cannot reuse p, create new one!
|
| 67 | 67 |
fmt.Println("stop")
|
| 68 | 68 |
}
|
|
69 |
|
|
70 |
func sleep(blockSize int) {
|
|
71 |
time.Sleep(time.Duration(blockSize) * (50*time.Millisecond + time.Duration(rand.Intn(5*int(time.Millisecond)))))
|
|
72 |
}
|
| 27 | 27 |
defer wg.Done()
|
| 28 | 28 |
blockSize := rand.Intn(maxBlockSize) + 1
|
| 29 | 29 |
for i := 0; i < 50; i++ {
|
| 30 | |
time.Sleep(time.Duration(blockSize) * (50*time.Millisecond + time.Duration(rand.Intn(5*int(time.Millisecond)))))
|
|
30 |
sleep(blockSize)
|
| 31 | 31 |
bar1.Incr(1)
|
| 32 | 32 |
blockSize = rand.Intn(maxBlockSize) + 1
|
| 33 | 33 |
}
|
|
| 41 | 41 |
defer wg.Done()
|
| 42 | 42 |
blockSize := rand.Intn(maxBlockSize) + 1
|
| 43 | 43 |
for i := 0; i < 100; i++ {
|
| 44 | |
time.Sleep(time.Duration(blockSize) * (50*time.Millisecond + time.Duration(rand.Intn(5*int(time.Millisecond)))))
|
|
44 |
sleep(blockSize)
|
| 45 | 45 |
bar2.Incr(1)
|
| 46 | 46 |
if bar2.Current() > 42 && p.RemoveBar(bar2) {
|
| 47 | 47 |
break
|
|
| 58 | 58 |
defer wg.Done()
|
| 59 | 59 |
blockSize := rand.Intn(maxBlockSize) + 1
|
| 60 | 60 |
for i := 0; i < 80; i++ {
|
| 61 | |
time.Sleep(time.Duration(blockSize) * (50*time.Millisecond + time.Duration(rand.Intn(5*int(time.Millisecond)))))
|
|
61 |
sleep(blockSize)
|
| 62 | 62 |
bar3.Incr(1)
|
| 63 | 63 |
blockSize = rand.Intn(maxBlockSize) + 1
|
| 64 | 64 |
}
|
|
| 69 | 69 |
// p.AddBar(2) // panic: you cannot reuse p, create new one!
|
| 70 | 70 |
fmt.Println("stop")
|
| 71 | 71 |
}
|
|
72 |
|
|
73 |
func sleep(blockSize int) {
|
|
74 |
time.Sleep(time.Duration(blockSize) * (50*time.Millisecond + time.Duration(rand.Intn(5*int(time.Millisecond)))))
|
|
75 |
}
|
| 26 | 26 |
defer wg.Done()
|
| 27 | 27 |
blockSize := rand.Intn(maxBlockSize) + 1
|
| 28 | 28 |
for i := 0; i < 100; i++ {
|
| 29 | |
time.Sleep(time.Duration(blockSize) * (50*time.Millisecond + time.Duration(rand.Intn(5*int(time.Millisecond)))))
|
|
29 |
sleep(blockSize)
|
| 30 | 30 |
bar1.Incr(1)
|
| 31 | 31 |
blockSize = rand.Intn(maxBlockSize) + 1
|
| 32 | 32 |
}
|
|
| 40 | 40 |
defer wg.Done()
|
| 41 | 41 |
blockSize := rand.Intn(maxBlockSize) + 1
|
| 42 | 42 |
for i := 0; i < 60; i++ {
|
| 43 | |
time.Sleep(time.Duration(blockSize) * (50*time.Millisecond + time.Duration(rand.Intn(5*int(time.Millisecond)))))
|
|
43 |
sleep(blockSize)
|
| 44 | 44 |
bar2.Incr(1)
|
| 45 | 45 |
blockSize = rand.Intn(maxBlockSize) + 1
|
| 46 | 46 |
}
|
|
| 54 | 54 |
defer wg.Done()
|
| 55 | 55 |
blockSize := rand.Intn(maxBlockSize) + 1
|
| 56 | 56 |
for i := 0; i < 80; i++ {
|
| 57 | |
time.Sleep(time.Duration(blockSize) * (50*time.Millisecond + time.Duration(rand.Intn(5*int(time.Millisecond)))))
|
|
57 |
sleep(blockSize)
|
| 58 | 58 |
bar3.Incr(1)
|
| 59 | 59 |
blockSize = rand.Intn(maxBlockSize) + 1
|
| 60 | 60 |
}
|
|
| 72 | 72 |
return fmt.Sprintf("%-7s", str)
|
| 73 | 73 |
}
|
| 74 | 74 |
}
|
|
75 |
|
|
76 |
func sleep(blockSize int) {
|
|
77 |
time.Sleep(time.Duration(blockSize) * (50*time.Millisecond + time.Duration(rand.Intn(5*int(time.Millisecond)))))
|
|
78 |
}
|