Skip to content

Commit

Permalink
完善文档
Browse files Browse the repository at this point in the history
  • Loading branch information
lixizan committed Dec 10, 2022
1 parent 56cc9b7 commit dc6aca4
Showing 1 changed file with 14 additions and 13 deletions.
27 changes: 14 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,16 +1,21 @@
## Concurrency

#### WorkerQueue

[![Build Status](https://github.com/lxzan/concurrency/workflows/Go%20Test/badge.svg?branch=master)](https://github.com/lxzan/concurrency/actions?query=branch%3Amaster)

> 工作队列, 可以不断往里面添加任务, 一旦有CPU资源空闲就去执行
#### Feature
- 最大并发协程数量限制
- 支持 `contex.Contex`
- 支持 `panic recover`, 返回包含错误堆栈的 `error`
- 任务调度不依赖 `time.Ticker`


#### Usage
- WorkerQueue 工作队列, 可以不断往里面添加任务, 一旦有CPU资源空闲就去执行

```go
package main

import (
"context"
"fmt"
"github.com/lxzan/concurrency"
"time"
Expand Down Expand Up @@ -39,8 +44,8 @@ func Mul(args interface{}) error {
func main() {
args1 := []int{1, 3}
args2 := []int{1, 3, 5}
w := concurrency.NewWorkerQueue(context.Background(), 8)
w.Push(
w := concurrency.NewWorkerQueue()
w.AddJob(
concurrency.Job{Args: args1, Do: Add},
concurrency.Job{Args: args1, Do: Mul},
concurrency.Job{Args: args2, Do: Add},
Expand All @@ -58,25 +63,22 @@ args=[1 3 5], ans=9
```


#### WorkerGroup

> 工作组, 添加一组任务, 等待执行完成, 可以很好的替代`WaitGroup`.
- WorkerGroup 工作组, 添加一组任务, 等待执行完成, 可以很好的替代`WaitGroup`.

```go
package main

import (
"context"
"fmt"
"github.com/lxzan/concurrency"
"sync/atomic"
)

func main() {
sum := int64(0)
w := concurrency.NewWorkerGroup(context.Background(), 4)
w := concurrency.NewWorkerGroup()
for i := int64(1); i <= 10; i++ {
w.Push(concurrency.Job{
w.AddJob(concurrency.Job{
Args: i,
Do: func(args interface{}) error {
fmt.Printf("%v ", args)
Expand All @@ -88,7 +90,6 @@ func main() {
w.StartAndWait()
fmt.Printf("sum=%d\n", sum)
}

```

```
Expand Down

0 comments on commit dc6aca4

Please sign in to comment.