タグ

関連タグで絞り込む (2)

タグの絞り込みを解除

マルチスレッドとあとで読むに関するdelegateのブックマーク (5)

  • マルチスレッド・プログラミングの道具箱

    まえがき クラウド上の仮想サーバから手元のスマートフォンまで、いまや複数のCPUコアを搭載するマルチコアはどこにでもある環境になりました。ハードウェア側が並列(Parallel)・並行(Concurrent)処理に向けて急速に進化する一方で、ソフトウェア側つまりプログラミング言語の進化はさほど追い付いていません。並行処理記述の手軽さを求めた Go言語 や、マルチスレッド処理の安全性を重視する Rust言語 などが登場してはいるものの、「普通にプログラムを記述するだけで複数CPUコア環境で高速に走るプログラミング言語」は遠い夢物語のままです。 モダンなプログラミング言語や並列・並行処理ライブラリは、複雑で難解なマルチスレッド処理を直接記述しなくてすむよう、安全性・利便性の高い抽象化レイヤを提供します(例:Go言語のgoroutineとchannel、Rust言語の Rayonライブラリ)。し

    マルチスレッド・プログラミングの道具箱
  • OpenGLを使ってみる。その4 -描画スレッド- - while( c++ );

    リアルタイムな描画を行うために、描画スレッドを導入します。 一般的にはメインスレッド内でPeekMessageを使ってwindowsイベントを処理し、 アイドル時に描画する形になると思いますが、 メインスレッドはwindowsイベントに専念し、サブスレッドで描画してみます。 サンプル opengl04.zip VC++2008EEで作成 opengl.exeを実行してください 描画スレッド boost::threadのようにテンプレートで実装したいところですが、 無駄に規模が大きくなりそうなので、もっと単純なスレッドクラスを作ってみます。 thread_baseクラス 最小限のスレッド基底クラス 派生クラスでrunを実装する class thread_base { private: HANDLE handle; HANDLE end_event; HANDLE stop_event; pu

    OpenGLを使ってみる。その4 -描画スレッド- - while( c++ );
  • もんしょの巣穴 - OpenGLの話 第5回

    OpenGLにおけるマルチスレッド 14/02/16 up 今回はOpenGLにおけるマルチスレッドの話をサンプル交えながら行います。 昨今の複数コアCPUで十分なパフォーマンスを発揮するにはマルチスレッドを活用する必要があります。 DirectX11でのマルチスレッド活用も踏まえて解説していきたいと思いますのでよろしくお願いします。 さて、グラフィクスにおけるマルチスレッドとして考えられるものは何でしょう? 私は3つの活用法がまず思い浮かびます。 今回はそのうちの1つをOpenGLで実装しているだけですので、サンプルとしては弱いかもしれませんが、お許しを。 まず1つ目は描画スレッドの活用でしょう。 これはグラフィクスAPI(OpenGLやDirectX)というよりは、それらをラップするライブラリでの実装に起因する問題となると思います。 基的なゲームの処理は大きく分けるとアップデートと描

  • Re[6]: MFC マルチスレッドについて

    分類:[C/C++] こんにちは、Jittaです。MFC のマルチ スレッドについて、教えてください。 UI を持つスレッドから、通信スレッドを起動しています*1。このとき、通信スレッドに CResizingDialog を継承したダイアログ クラスのオブジェクトを引き渡しています。 通信スレッドでは、通信の結果を‘ダイアログにあるリスト ビューへ書き込んでいます’。 また、‘ダイアログの公開フィールドにある、CObjArray を操作しています’。 MFC の知識がほとんど無いので尋ねたいのですが、 これらの(引用符で囲った)操作は、スレッド セーフでしょうか。 疑問に思う理由: .NET Framework では、Invoke メソッドを利用して、コントロールのもとになるウインドウ ハンドルを持つスレッドで行わなければならない。 MFC では、「ワーカー スレッド」と「ユーザー インタ

  • MFCの基礎 - マルチスレッド

    概要 MFCアプリケーションにおいて、マルチスレッドを使用する方法について記述する。 作成手順 まず、クラスにワーカースレッド関数(静的)とワーカースレッド体の関数を追加する。 ワーカースレッド体の関数では、静的でないメンバ変数およびメンバ関数が使用できる。 ワーカースレッド関数では、静的でないメンバ変数およびメンバ関数が使用できないと考えている人がいるが、 下記のサンプルコードのようにすればクラスの関数はワーカースレッド関数にて行うことができる。 サンプルコード // CFileView.h class CFileView { private: CWinThread *m_pLoadXMLThread public: static UINT LoadXMLThreadFunc(void* pParam); // XMLファイル読み込み時のスレッド制御関数 void LoadXMLTh

  • 1