タグ

マルチスレッドに関するt_otodaのブックマーク (4)

  • サーバーマシン1台で同時接続者数1万名を実現するにはどうすればいいのかというノウハウと考え方

    CEDEC 2012ではドラゴンクエストXは「世界は一つ」を実現するためにどのようなサーバ構成にしているのか?ということで、オンライン作品であるドラクエXを支えるサーバの構成が講演されましたが、ゲームサーバー&ネットワークエンジン「ProudNet」の開発者であるNettention社のCEOであるHyunjik Baeさんは、韓国のオンラインゲームのサーバー開発と利用の経験を通して大規模プレイヤーのためのリアルタイムネットワーク同期技術について講演しました。 サーバーマシン1台でMMO同時接続者数10,000名を実現する方法 | CEDEC 2012 | Computer Entertaintment Developers Conference http://cedec.cesa.or.jp/2012/program/AB/C12_I0284.html Hyunjik Bae: こんにち

    サーバーマシン1台で同時接続者数1万名を実現するにはどうすればいいのかというノウハウと考え方
  • Lock-free スナップショットの撮り方を説明してみる - くまメモ

    マルチスレッドなどの環境下で時間経過によって勝手に変化する複数の変数を読みたい場面は多くあります。 しかしCPUは一度に一つしか値を読み書きできないので、簡単には出来ません。 何故なら読んでるそばから値が変動してでたらめな値を読むかも知れないからです。 変動してるものを読むのだから読む側が完璧じゃなくても仕方ないという妥協は有り得ますが 特定のある一瞬の時刻での状態を写真のようにパチリとフィルムに収められたら嬉しいですよね。 一番簡単なのはロックを取りながら読む事ですが、ロックは諸般の事情により使えない事とします。 前提 値が勝手に変動するという状況が分かりにくいと思うので、適当な例えとして卵の孵化を想像してみましょう。 「卵」→「ヒビ」→「ひよこ」 の順でランダムに勝手に進んで行きます。止めることは出来ませんし後戻りもしません。 こんな卵が複数ある孵化器の監視を任されたとします。卵の状態

  • デザインパターン(マルチスレッド) - 自分用メモとか

    Single Threaded Execution(Critical Section) パターン † 一度に1つのスレッドしか実行できないようなメソッドを指します(要は排他制御のこと)。 つまり、Javaでは、synchronizedをつけるだけです。 C++(Windows環境)では、クリティカルセクションオブジェクトを用います。 synchronized なメソッドを実行中は、そのオブジェクトがロックされます。 (他のスレッドがオブジェクトのメンバにアクセスすることができなくなる) 例えば以下のコードでは、safeMethod()が synchronizedな時とそうでない時で実行結果が異なります。 public class ThreadSafeSample { int x = 0; /// スレッドセーフにしたいメソッド public synchronized void saf

  • デザインパターン入門 マルチスレッド編まとめ - リトルプログラマーの日記

    がーっと読んだ。実際に使うときの思い出しトリガーになるようにメモしておく。 Java言語で学ぶデザインパターン入門 マルチスレッド編 マルチスレッドプログラムの評価基準 安全性 オブジェクトを壊さないこと スレッドセーフなクラス 生存性 必要な処理が行われること 安全性を重視しただけでは生存性を下げてしまう場合がある。例えばデッドロック。 再利用性 クラスを再利用できること スレッドの排他制御の仕組みや方針をうまくクラスの中に隠蔽すれば、再利用性の高いプログラムになる。 パフォーマンス 処理を高速・大量に行えること 安全性と生存性を守るのは必須。その上で、いかにして再利用性とパフォーマンスを上げるかが重要。 Single Thread Execution 「この橋を渡れるのは、たった一人」 複数のスレッドがインスタンスを共有する場合の基パターン クリティカルセッション(インスタンスが不安

    デザインパターン入門 マルチスレッド編まとめ - リトルプログラマーの日記
  • 1