タグ

スレッドとJavaに関するmasudaKのブックマーク (4)

  • Javaでトランザクショナルメモリを使う

    7/12 プログラミング生放送+CLR/H+Sapporo.cpp 勉強会@札幌 ユビキタス協創広場 U-cala #pronamaclrhsapporocpp で発表したスライド http://pronama.azurewebsites.net/2014/06/12/pronama-clrh-sapporocpp-at-u-cala/ RLSを用いたマルチテナント実装 for Django by Takayuki Shimizukawa 複数のテナント(チーム・組織)向けにサービスを提供するシステムで、テナント相互の情報を分離して扱う、複数のマルチテナントアーキテクチャが考案されています。「各プログラマが努力して実装する」戦略でも実現はできますが、プログラミングミスや設定間違いによるデータ混濁が高確率で発生します。このトークでは、マルチテナントアーキテクチャにおけるデータ分割アプローチの

    Javaでトランザクショナルメモリを使う
  • Commons DBCP

    Commons DBCP は、データベースのコネクション・プーリングを扱うライブラリです。 Tomcat で標準採用されています。 動作説明 動作を簡単に説明します。 クライアントから接続要求が発生した場合 … getConnection() 1. DBCPは、プール内に空き接続があるか確認 2. あればそれを返す。この時その接続は アクティブ となる 3. プール内に空き接続が無ければ、新たに接続を作って返す クライアントから切断要求が発生した場合 … conn.close() 1. 切断要求のあった接続をプール内に保管する。この時その接続は アイドル となる 2. もしプール内に maxIdle 以上の接続が溜まったら、それ以上にならないように接続を削除する 接続監視スレッド DBCPには接続監視スレッドというものが存在します。 これは一定時間毎にプール内のアイドル接続をチェックするも

  • マルチスレッドの同期

    C言語やPerlのfork&execのように、プロセスを同時に実行したり、同期を取るために待ち合わせる処理を行ってみましょう。 Java言語では、マルチスレッド機能が言語に含まれるため、比較的きれいにプログラムできます。 Javaの場合、2スレッドの同期と、3スレッド以上の同期で、処理が異なります。 マルチスレッドプログラミングも参照してください。 2スレッドの同期 2つのスレッド間の同期は、joinメソッドを使って、より簡単に実現できます。 子スレッドを起動し並行処理を行い、親スレッドが子スレッドの終了を待って、次の処理を行うプログラムを作成してみます。 処理内容は、Hello World!を表示するだけですが、スレッド名も表示するようにしています。 各スレッドの処理の流れは、以下のようになります。 親スレッドは、joinメソッドで、子スレッドが終了するまで待ちます。 親スレッド 子スレ

  • Javaの道:スレッド(4.スレッドの同期)

    概要 例題として、配列priceに設定された課税前の価格を一つづつ抜き出し変数workAreaに代入し、workAreaに代入された価格に消費税を課税する処理を行います。課税前の価格を抜き出しworkAreaに代入する処理をpricePutメソッドにて、workAreaに代入された価格に課税する処理をpriceGetメソッドにて行います。 この処理を行う上でスレッドの実行順序を制御せずに実行した場合は、スレッドの実行順序はJavaの動作するシステムのスケジュール機能に依存するため、必ずしもpricePutメソッドとpriceGetメソッドが交互に実行されるとは限りません。その場合、実行結果は以下のようになる場合があります。 課税後価格は105.0円です。 課税後価格は210.0円です。 # pricePutで新しい価格が設定される前に 課税後価格は210.0円です。 # priceGetが

    Javaの道:スレッド(4.スレッドの同期)
  • 1