Open8

golangでOAuth2.0 回りを実装する際の情報まとめ

Kaikei EzakiKaikei Ezaki

こちらも参考になりそう。
記事より引用。
一個下のポストの答えとして、RuseTokenSourceはTokenSourceと挙動が異なる。具体的には、有効期限が切れる前にトークンを生成しようと試みるかどうかのようだ。

ReuseTokenSource は トークンの有効期限内ではキャッシュして切れた後に初めて新しいトークンを生成しようとするというフローになっている。
そのため期限切れになったときにトークン発行リクエストが同時に行われる可能性(Thundering Herd)があり、その問題を回避するためか、トークン発行処理にはロックがかかっている。
全リクエストが独立して発行処理を行っても特に良いことはないので、このロックがあること自体は正しいけど、もし発行処理を行っているところが遅くなった場合は全リクエストに謎の(ロックまちによる)遅延がかかってしまう。

https://qiita.com/kazegusuri/items/b6123f9d3e0777d0750c