タグ

lockとThreadに関するblueleのブックマーク (3)

  • Scala で ReadWriteLock にローンパターンを使う - サイエンスデザインノート

    ReadWriteLock は確実にロックを解除しないといけません。 readWriteLock.writeLock().lock(); try { // 何かの処理 } finally { readWriteLock.writeLock().unlock(); } いけませんが、よく忘れます。unlock() がコピペの魔術かなにかで lock() になったままとか。writeLock() をロックして readLock() をロック解除とか。 try-finally 句を使ってロックは確実にロック解除させるべきですが、ロックをかけるだけでコードが助長になります。 確実にリソースを閉じるときなど、ローンパターンを用いた using (with) 句がとても便利です。ということで、Scala で ReadWriteLock をするとき(あまり無いんじゃないかという話もありますが)、ローンパ

    Scala で ReadWriteLock にローンパターンを使う - サイエンスデザインノート
  • マルチスレッド

    <Read-Write Lock> (1)ReentrantReadWriteLock Read-Write Lockは「読む処理」と「書く処理」に分けてロックを取ります。 「読む処理」X「書く処理」または「書く処理」X「書く処理」の時にはロックをかけますが 「読む処理」X「読む処理」の時にはロックをかけません。 読み込み処理が多い時または読み込み処理に時間がかかる場合など、一般的な排他制御より効率が期待されます。 java.util.concurrent.locks.ReentrantReadWriteLockクラスを使えば、Read-Write Lockの機能が容易に実現できます。 Read-Write Lockのパターンは lock try { 処理 } finally { unlock } のようにfinally節で必ずロックを開放しなければいけません。 ●Read-Write L

    bluele
    bluele 2013/08/25
    read-write lock
  • Python でスレッド - hidemonのブログ

    Python のスレッドについてちょっと調べてみた. Javaだとselectがない(new IOを使うとそれっぽくは書けるが, すごく面倒) ので, スレッドがないと通信系のプログラムが書けないけど, Pythonにはちゃんとselectがあるので, これまであまり使ってこなかった. でも, やっぱりちゃんと勉強しておこうということで. Pythonにはスレッド用のモジュールとして, thread と threading の二つがある. 前者は非常に基的なスレッドとロックオブジェクトを提供していて, 後者は前者を用いて構築された, より抽象度の高いスレッドライブラリ, という位置づけらしい. プログラマは基的に後者だけ見てればいいのだろう. threadingが提供するオブジェクトは, 次の7つ. Thread:スレッド Lock:排他ロック RLock: リエントラントな排他ロック

    Python でスレッド - hidemonのブログ
  • 1