問題タブ [pthreads]

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.

0 投票する
1 に答える
269 参照

linux - UNIX での同時コンソール入力の標準ソリューションとしての Pthreads ?

ncurses を使用して Linux 用の簡単なチャット クライアントを作成する評価を受けました。チャットには 2 つのウィンドウがあります。1 つは他のクライアントの発言を表示し、もう 1 つはユーザー入力を処理します。

ここで私を混乱させているのは、常にソケットから送信され、同時にユーザーの入力を待つデータを処理する方法です。私の頭に浮かぶ唯一の解決策は pthreads を使用することですが、もっと適切なものが欠けていると感じています。

助言がありますか?

0 投票する
8 に答える
2204 参照

c++ - POSIXスレッドの経験?(またはより良いものをお勧めします)

C++用の軽量マルチスレッドフレームワークを探しています。POSIXスレッドを見つけました。
POSIXスレッドの実際の経験を共有してください。始める前に、wikiからではなく、実際の人々からの長所と短所を知りたいと思います。
それを実際に何かと比較した場合(多分、より良い)、どちらかを知ることは興味深いでしょう。

UPD:クロスプラットフォーム機能は私にとって非常に重要なので、この方向性について説明していただければ幸いです。

UPD2:私はすでにQNX / Win32用の1つのフレームワークを使用した経験がありますが、軽量ではなく、-ああ、言及するのを忘れました-商用であり、無料ではありませんが、無料のものが必要です。

0 投票する
1 に答える
2463 参照

linux - Linux と Solaris でのスレッド パフォーマンス

この Linux Magazine の記事http://www.linux-mag.com/id/792では、Linux でのスレッドの実装方法と、Solaris などの商用 Unix との違いについて説明しています。要約すると、Linux はユーザー スレッドからカーネル スレッドへの 1 対 1 のマッピングを使用しますが、Solaris は多対多のマッピングを使用します。この記事は、特にスレッド間の切り替え時に、これにより Solaris のパフォーマンスが向上する可能性があることを暗示しています。これをテストするために時間を費やす前に、誰かがすでにそれを行っていますか?

0 投票する
3 に答える
537 参照

linux - Linuxでmsemaphore?

AIX (および HPUX) には msemaphores と呼ばれる優れた小さな機能があり、複数のプロセスで共有されるメモリ マップ ファイルの細かい部分 (レコードなど) を簡単に同期できます。Linuxで同等のものを知っている人はいますか?

明確にするために、msemaphore 関数については、関連するリンクをたどって説明しています

0 投票する
8 に答える
34774 参照

c - pthread_create()の使用中に構造体を引数として渡す

pthread_create()次のようなものを使用しながら、4番目の引数として構造体を渡してみました。

これで、構造体の変数(ta、tb、またはtc)にアクセスしようとすると、エラーが発生し続けます。構造体または共用体ではないもののメンバーを要求します。

構造体をスレッドに渡すために使用できる代替メソッドは何ですか?

0 投票する
5 に答える
7553 参照

c++ - Openwrt Linux で -pthreads を使用して C++ をコンパイルすると、セグメンテーション エラーが発生します

私は C++ でのプログラミングにかなり慣れていないので、pthreads を使用しています。コードを OpenWRT 用にクロス コンパイルしていますが、ボードでプログラムを実行すると何らかの理由でセグメンテーション エラーが発生しますが、PC では正常に実行されます。小さな C プログラムを試してみたところ、問題なく動作したため、コンパイルのリンク段階でエラーが発生したと思われます。また、ファイルの名前を .cpp に変更して g++ でコンパイルしても機能します。

Eclipse コンパイラーからの出力:

編集: 古いコードを削除し、新しいより単純な例を追加しました。このコードは、C プログラムとしてコンパイルすると実行されますが、C++ プログラムとしてコンパイルすると実行されません。ボード上で 2.6.26.3 カーネルを実行しています。

0 投票する
2 に答える
1782 参照

c++ - pthread-win32 での VS rand() の問題

pthread プログラミングで奇妙な問題が発生しました。vs2005 でpthread-w32を使用して次のコードをコンパイルしました。

出力は次のようになります

rand() が 2 回の呼び出しごとに同じ結果を返すのと同じように、srand() がありますが、プログラムを実行するたびに結果は変わりません

私はマルチ スレッド プログラミングに非常に慣れていないので、rand() がスレッド セーフではないことを聞いたことがあります。しかし、上記のプログラムが間違っているのか、それとも rand() 関数に問題があるのか​​ 、まだわかりません。

0 投票する
2 に答える
4205 参照

c - pthread バリアを安全に破棄できるのはいつですか?

初期化された pthread_barrier_t がある場合、安全に破棄できるのはいつですか? 次の例は安全ですか?

0 投票する
3 に答える
27655 参照

linux - -pthreads で -D_REENTRANT が必要ですか?

Linux (カーネル 2.6.5) では、ビルド システムは gcc を-D_REENTRANT.

を使用する場合、これはまだ必要pthreadsですか?

gcc -pthreadオプションとの関係は?pthreads で使用する必要があることは理解しています-pthreadが、それでも必要-D_REENTRANTですか?

余談ですが、 gcc 3.3.3 と gcc 4.xx の間で REENTRANT を使用する際に知っている違いはありますか?

gcc オプションを使用すると、それが定義され-pthreadていることがわかります。_REENTRANTコマンドラインを省略-D_REENTRANTしても違いはありますか? たとえば、一部のオブジェクトがマルチスレッドのサポートなしでコンパイルされ、pthreads を使用するバイナリにリンクされて問題が発生する可能性がありますか?

使用するだけで問題ないと思います: g++ -pthread

静的ライブラリとリンクする複数の静的ライブラリとアプリケーションをコンパイルしています。ライブラリとアプリケーションの両方が pthread を使用します。

過去のある段階で必要だったと思いますが、まだ必要かどうかを知りたいです。グーグルで言及した最近の情報は返されていません - D_REENTRANTwith pthreads. kernel/gcc/pthreadの最近のバージョンでの使用について議論しているリンクまたは参考文献を教えていただけますか?

明確化: 現在、-D_REENTRANT と -lpthread を使用していますが、g++ -pthread だけで置き換えることができると思います。man gcc を見ると、プリプロセッサとリンカの両方のフラグが設定されています。何かご意見は?

0 投票する
8 に答える
7946 参照

c++ - C++-スレッドと複数のキュー

ワーカー(スレッドとして表される)と(複数の)キューのシステムを構築する必要があります。個々のジョブはキューの1つで待機しており、ワーカースレッドがそれらを処理するのを待機しています。各ワーカーは、一部のキューからのみジョブを処理できます。スピン待機はありません。C / C ++、pthread、標準POSIX。

私にとっての問題は、「複数のキュー」のことです。私はこれを単一のキューで実装する方法を知っています。ワーカーは、処理できるすべてのキューを待機する必要があります(いずれかのキューを待機します)。

WindowsではWaitForMultipleObjectsを使用しますが、これはマルチプラットフォームである必要があります。

このための特定のコードは必要ありません。使用するモデルのヒントまたは説明だけが必要です。前もって感謝します。