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

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

藏色散人
リリース: 2022-12-21 18:01:40
転載
4786 人が閲覧しました

この記事では、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 までご連絡ください。
    人気のチュートリアル
    詳細>
    最新のダウンロード
    詳細>
    ウェブエフェクト
    公式サイト
    サイト素材
    フロントエンドテンプレート