読者です 読者をやめる 読者になる 読者になる

Lock Striping についてとその実装

Java Concurrency in Practice の 5.2.1. ConcurrentHashMap にて Lock Striping というロックの方法が出てくる。 Lock Striping の説明と実装、および簡単にパフォーマンスを測ったのでそのメモ。 Java Concurrency in Practice作者: Brian Goetz,Tim Peier…

golang で Future を実現する

ここで言う Future オブジェクトとは、clojure の Future を使用して作成できるオブジェクトのようなものことをいう(結果をキャッシュしてないとかはあるけど、その辺は割愛している)。 つまり、何か処理を受け取りその処理を別 thread で実行するオブジェク…

Go版retriable作った

Rubyの retirable の Go版を書いた。 github.com 使い方 一番シンプルな使い方。引数として渡されたクロージャが成功するまでリトライし続ける。 リトライ回数のデフォルトは3で、リトライ間隔は randomized exponential backoff アルゴリズムを使っている。…