タグ

排他制御に関するsh2nm0k2のブックマーク (4)

  • Javaの排他制御(ロック)に関係するクラスまとめ - Qiita

    ※ ロックオブジェクトは、全スレッドで使いまわします。 java.concurrent.atomic.AtomicInteger,AtomicLong, etc 値の増減をアトミックに行えるクラスです。カウンターを実装したいときに便利です。 他にも、java.concurrent.atomicに幾つか同様のクラスがあります。 import java.concurrent.atomic.AtomicInteger; AtomicInteger counter = new AtomicInteger(0) // 初期値を渡す int five = counter.addAndGet(5);

    Javaの排他制御(ロック)に関係するクラスまとめ - Qiita
  • 排他制御のあれこれ - Qiita

    この記事は、システムエンジニア Advent Calendar 2016 - Qiita の23日目の記事です。 昨日は @yy_yank さんの 気負わず普通にテストしよう でした。 明日は @koduki さんです。 はじめに 複数ユーザが触るアプリケーションを作る場合、同時にデータが更新された場合の制御は避けては通れません。 この制御はスレッドセーフとか同時更新とか色々な観点で考えないといけないのですが、いまいちそのあたり自分自身の中できれいに整理できていませんでした。 なので、この機会に同時に更新される場合の排他制御について、自分なりに整理してみました。 まえおき 説明に使用する言語は Java です。 説明のためにシーケンス図っぽいものを使っていますが、 UML の厳密な定義には従っていません。図が描きやすいからシーケンス図を利用している、ってだけなので厳密な記法ルールに従ってい

    排他制御のあれこれ - Qiita
  • Swift 3 世代の排他制御 - Qiita

    前回こんな記事を書きました。 Swift 世代の排他制御 http://qiita.com/codelynx/items/0ecd28c8a7da0a0e42b5 この記事では、以下のような排他制御の書き方を紹介しました。NSLock を使えば、複数のスレッドからクリティカルなデータの同時更新を防げるという話でした。具体的には、NSLock を lock() してから unlock() するまでは、他のスレッドは待たされるので、atomicity が保証できるという話です。しかも、defer 文を使えば、スコープを抜けた時に、確実に実行されるので、途中でいくつもの return 文があるようなパターンでも、実行し忘れがなく、安全という事です。 class MyObject { let lock = NSLock() func update1() { self.lock.lock() def

    Swift 3 世代の排他制御 - Qiita
  • Swift 世代の排他制御 - Qiita

    Update: 関連する記事のリンクを追加しました。 Swift 3 世代の排他制御 http://qiita.com/codelynx/items/56ce2f91cd3f4f409aeb 今回は Swift で排他制御が必要になった時の TIPS を紹介したいと思います。 Objective-C時代の古き良き排他制御 GCDを使った排他制御 NSLock と defer を使った排他制御 Objective-C時代の古き良き排他制御 Objective-C の時代に排他制御のコードを書いた人は @synchronized をよく使ったと思います。簡単な構文で手軽に排他制御できていたので重宝していたかと思います。 // Objective-C 時代の排他制御 - (NSData *)readDataRange:(NSRange)range { @synchronized(self) {

    Swift 世代の排他制御 - Qiita
  • 1