ホームページ  >  記事  >  バックエンド開発  >  非常に使いやすい GO 同時実行制御ライブラリを共有してください。

非常に使いやすい GO 同時実行制御ライブラリを共有してください。

藏色散人
藏色散人転載
2022-12-21 18:01:404740ブラウズ

この記事では、Golang に関する関連知識を紹介し、非常に使いやすい Golang 同時実行制御ライブラリについて説明します。

非常に使いやすい GO 同時実行制御ライブラリを共有してください。

#同時実行性

Build Status##インストール

GOPROXY=https://goproxy.cn go get -v github.com/lxzan/concurrency@latest

機能

同時コルーチンの数の制限

    サポート
  • contex.Contex
  • サポートパニック回復
  • 、リターン
  • error はエラー スタックのタスク スケジューリングを再帰的に実装し、time.Ticker
  • channel## には依存しません。
  • #使用法

WorkerGroup ワーク グループは、タスクのグループを追加し、実行の完了を待機します。これは、WaitGroup

の良い代替手段となります。
    #
package mainimport (
    "fmt"
    "github.com/lxzan/concurrency"
    "sync/atomic")func main() {
    sum := int64(0)
    w := concurrency.NewWorkerGroup()
    for i := int64(1); i <= 10; i++ {
        w.AddJob(concurrency.Job{
            Args: i,
            Do: func(args interface{}) error {
                fmt.Printf("%v ", args)
                atomic.AddInt64(&sum, args.(int64))
                return nil
            },
        })
    }
    w.StartAndWait()
    fmt.Printf("sum=%d\n", sum)}
4 5 6 7 8 9 10 1 3 2 sum=55
  • WorkerQueue ワーク キュー。継続的にタスクを追加し、CPU リソースが空いたら実行できます [推奨事項: goチュートリアル
  • ]
      レリーレリー

    以上が非常に使いやすい GO 同時実行制御ライブラリを共有してください。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

    声明:
    この記事はlearnku.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。