問題タブ [boost-thread]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - scoped_lock の間違った使い方によるメモリリーク?
メモリ リークが発生しました。これは、scoped_lock (Boost) の使用方法が間違っていることが原因だと思います。ただし、正確な問題を見つけることはできません。また、コードの記述方法も完全に正しくないと思います。
コードはこのクラスにあります: http://taf.codeplex.com/SourceControl/changeset/view/31767#511225
主な重要なメソッドは ThreadedLoop() です。基本的に、このメソッドはスレッド内で開始され、Yahoo 用にダウンロードされる市場データを定期的にチェックします。株式ごとに (またはそれ以外の場合)、新しいスレッドが作成され (ExecuteNextRequest() メソッド用に)、株式名を含む文字列へのポインターをパラメーターとして渡します。これは私が行う唯一のメモリ割り当てですが、スレッド実行の最後に解放されます。
また、このコードをどのように拡張できるかにも興味があります (もちろん、スレッドプールを使用することもできますが、それはまだ重要ではありません)。どうもありがとう!
c++ - C++ boost::thread とコンテナの自動ロック
アクセス時に STL コンテナーを自動的にロックする方法はありますか? ロックして解放する必要はありません。
c++ - boost :: threadedメンバー関数から戻り値を取得しますか?
以下のようなワーカークラスがあります。
これは、boost::threadおよびboost::bindで実行されることを目的としています。たとえば、次のようになります。
私の質問は、Worker :: Doの戻り値を取得するにはどうすればよいですか?
前もって感謝します。
java - java.util.concurrent と Boost Threads ライブラリ
Boost Thread ライブラリは java.util.concurrent ライブラリと比べてどうですか?
パフォーマンスは非常に重要なので、私は C++ を使い続けることを好みます (最近では Java の方がはるかに高速ですが)。C++ でコーディングする必要があることを考えると、スレッド化を容易にし、エラーを起こしにくくするためにどのようなライブラリが存在しますか?
最近、JDK 1.5 の時点で Java メモリ モデルが変更され、同時実行性の問題が修正されたと聞きました。C++はどうですか?私が最後に C++ でマルチスレッド プログラミングを行ったのは、pthreads を使用した 3 ~ 4 年前のことです。ただし、大規模なプロジェクトにはもう使用したくありません。私が知っている唯一の他の選択肢は、Boost Threads です。しかし、それが良いかどうかはわかりません。java.util.concurrent については良いことを聞いたことがありますが、Boost スレッドについてはまだ何も聞いていません。
join - スレッドをブーストして参加する
g++ theFile.cc -lboost_thread でコンパイルするこのテスト ケースをここに用意しました。プログラムを実行すると、join コマンドでハングしているようです。理由はよくわかりません。interrupt_point() 関数がメイン スレッドからの参加要求を取得していないようです。
読んでくれてありがとう。
編集: また、while ループを削除すると、プログラムは正常に終了します... バージョン 1.39.0 をブースト
c++ - boost::thread sleep() は何をしますか?
私は現在、ブーストスレッド用の小さなラッパークラスに取り組んでいますが、スリープ機能がどのように機能するかはよくわかりません。これは私がこれまでに得たものです:
これはこれまでの実装方法ですが、たとえばスレッドラッパーの複数のインスタンスがアクティブな場合に、静的な this_thread::sleep メソッドがどのスレッドをスリープ状態にするかを実際に理解していません。これはそれを実装する正しい方法ですか?
c++ - マルチスレッド アプリケーションでの出力へのアクセスの制御
ジョブ キューを作成するアプリケーションがあり、複数のスレッドがジョブを実行します。それらを実行するとは、ジョブ文字列で system() を呼び出すことを意味します。
問題は、stdout への出力が質問の下部にある出力のように見えることです。各アプリケーションの実行を分離したいので、出力は次のようになります。
制御できないプログラムを使用しているため、IO をミューテックスでラップできません。
出力を上記のようにするにはどうすればよいですか?
c++ - シングルスレッドのGUIアプリケーション用に追加のワーカースレッドを作成するにはどうすればよいでしょうか。
現在、既存のVCLアプリケーションの新機能を開発しています。このアプリケーションは、TeeChartと呼ばれるサードパーティのパッケージを使用してチャートと静止画像を作成します。静止画像チャートを作成するために200万のデータポイントをロードしなければならない場合が1つあります。ただし、これには読み込みに時間がかかり、ユーザーはアプリケーションが完了するまでアプリケーションで何もできません。したがって、GUIがフリーズしないように、データポイントを処理するためのワーカースレッドを作成することをお勧めします。
このメソッドsetData()
は、次のメンバー変数を設定します。これらのメンバー変数は、VCLコンポーネントが続行し、チャートの作成に使用します。
ワーカースレッドを作成するときに考慮すべきことは何ですか?
すべてのデータ処理が1つのメソッドで行われる場合、boostを使用してスレッドを作成するにはどうすればよいsetData(){...}
ですか?
boost - スレッド例の静的コンパイル
Boost C++ ライブラリを次のようにコンパイルしました。
エラーなし。次に、次のソースをコンパイルしました。
使用:
Boost ライブラリが にあるため、プログラムは正常にコンパイルおよび実行されました/usr/local/lib
。/usr/local/lib
から削除する/etc/ld.so.conf.d/libc.conf
と、次のエラーが発生しました(驚くことではありません):
Thread.cpp
Boost へのリンクを静的にコンパイルするにはどうすればよいですか? 私は次のことを試しました:
次の Boost ライブラリがインストールされています。
次のコンパイル エラーが表示されます。
何か案は?
c++ - 起動時にコアリングするスレッドをブースト
私は、その存続期間中に複数のスレッドを起動および破棄するプログラムを持っています。しばらくの間はすべて問題なく動作しますが、最終的に次のコア ダンプ スタック トレースが表示されます。
最初は、スレッドをリークしていて、コアが現在のスレッド数の上限に達したことが原因であると考えましたが、今では、そうでない場合でもこの問題が発生するようです。参考までに、上記のコアでは、13 個のアクティブなスレッドが実行されていました。
start_thread がコアになる理由を突き止めるためにいくつかの検索を行いましたが、何も見つかりませんでした。誰にもアイデアはありますか?