問題タブ [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 投票する
6 に答える
8336 参照

c++ - pthread_cond_timedwait および pthread_cond_signal のミューテックスをロックしない (Linux の場合)

関連するミューテックスを最初にロックせずに pthread_cond_timedwait を呼び出すこと、および pthread_cond_signal を呼び出すときにミューテックス ロックを取得しないことの欠点はありますか?

私の場合、チェックする条件は実際にはありません。Javaのwait(long)およびnotify()と非常によく似た動作が必要です。

ドキュメントによると、「予測できないスケジューリング動作」が発生する可能性があります。それが何を意味するのかわかりません。

サンプル プログラムは、最初にミューテックスをロックしなくても問題なく動作するようです。

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

linux-kernel - 2.4 カーネルのマルチスレッド アプリケーションで待機が失敗する

私はマルチスレッド化されたアプリケーションを持っています.1つのスレッドがwait()で死んだ子を収集する責任があり、別のスレッドが要求に応じてフォークでそれらを生成します.

2.4 カーネルと LinuxThread を使用する 1 つのプラットフォームでは、待機が常に ECHILD で失敗することがわかりました。2.4 カーネルでの LinuxThreads の非 POSIX 準拠の実装に問題がある可能性があることがわかりました。以下の説明では、これを解決する方法がないことを示唆しています。

それでも、誰も解決策を知らないことを確認したいと思います。カーネルのパッチでも構いません。

アプリケーションの設計について考えると、fork() と wait() の両方を 1 つのスレッドで (または膨大な労力をかけてのみ) 実行できるとは思えません。

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

c++ - pthreads スレッドの一意の定数識別子?

pthread_taは、特定のスレッドに対して、その存続期間中一定のままであると推測しましたが、私の実験では、この仮定が間違っていることが証明されているようです。特定のスレッドの ID がその存続期間を通じて一定に保たれない場合、そのスレッドが終了するまで別のスレッドがブロックにpthread_t使用できるようにするにはどうすればよいでしょうか?pthread_join

他の理由から、 に前後に変換できるスレッドの一意の識別子を取得する方法を知っておくと便利ですpthread_t。これを行う方法はありますか?

すばらしい情報がたくさんありますが、これらの質問に対する有用な回答を特定するのに苦労しました. 私が得ることができる助け/アドバイスをいただければ幸いです!

編集: また、理由はわかりませんが、sleep(1) を追加し、すべての新しいスレッドの先頭 (スレッドの関数内) で 1 秒間スリープすると、すべてが期待どおりに機能するようです。これはおそらくストローとして把握していpthread_tますが、新しいスレッドまたは何かの開始時に値が瞬間的に変化する可能性はありますか??

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

c++ - Solaris10でのpthread_cond_timedwaitリンクエラーとclock_gettime

pthread_cond_wait私はこのように見える使用したコードを少し持っています:

しかし、コンパイル時にリンカーエラーが発生します。

未定義のシンボルclock_gettime...(そのコードを含むファイル)で最初に参照されます

これは私が得る唯一のリンカーエラーです。このコードブロックをコメントアウトすると、コンパイルされるので、pthreadライブラリがロードされます。どこかで-lcフラグを設定する必要があることを読みましたが、これは別の設定も必要なようです。

誰か知っていますか?

これはSolaris10で、Sunの5.8コンパイラを使用しています。

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

c - ミューテックスを保持したままpthread_cond_broadcastを呼び出しますか?

pthread_cond_tを使用して、ミューテックスを関連付ける必要があります。条件を通知するときに、次のようなコードを確認しました。

どちらが適切な方法ですか?(それは重要ですか?)

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

linux - Pthread ミューテックス アサーション エラー

Linux ベースの (arm) 通信アプリケーションで、予期しないタイミングで次のエラーが発生します。

Google はそのエラーに関する多くの参照を見つけましたが、私の状況に関連すると思われる情報はほとんどありません。このエラーのトラブルシューティング方法について誰かがアイデアをくれないかと思っていました。この主張の一般的な原因を知っている人はいますか?

前もって感謝します。

0 投票する
6 に答える
6550 参照

c - Windows にはどちらが適していますか? pthreads または CreateMutex?

アプリケーションを Linux から Windows に移植しています。私は、プラットフォーム間でアプリケーションを移植するという芸術にかなり慣れていません。私の知る限り、Windows は POSIX スレッドの実装をネイティブにサポートしていません。これは本当ですか?Windows 用の pthread の実装 (ラッパーなど) について聞いたことがありますが、それらを使用するか、Windows が提供する CreateMutex やその他の API を使用する方がよいでしょうか???? 誰かお願いします。両方の世界の長所と短所を教えてください。移植に関するいくつかのその他のヒントは、答えとうまく調和します。

前もって感謝します。

0 投票する
6 に答える
101942 参照

c++ - シンプルなスレッド!C++

これが機能しない理由がわかりません

エラー:

[説明、リソース、パス、場所、タイプ] 'int pthread_create(pthread_t*, const pthread_attr_t*, void* (*)(void*), void*)' の引数 3 を初期化します threading.cpp threading/src 24 行目 C/ C++ の問題

0 投票する
4 に答える
346 参照

c - cの処理ユニット(#cpu、cores)のnrを取得するポータブルな方法?

システム内のCPUやコアなどの処理ユニットの数を取得する方法はありますか?pthreadを使用してアプリを作成するので、posix呼び出しがあればそれは素晴らしいことです。/ proc / cpuinfoから読み取ることについては知っていますが、それはそれほど移植性がありません。別のよりポータブルな方法はありますか?

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

c - pthread待機条件の周りにwhileループが必要なのはなぜですか?

私はpthreadと待機条件を学んでいます。私が知る限り、典型的な待機スレッドは次のようになります。

私が理解できないのは、スレッドをウェイクアップするためwhile(!condition)に使用しても、なぜラインが必要なのかということです。pthread_cond_signal()

pthread_cond_broadcast()使用する場合、条件をテストする必要があることを理解できます。これは、待機中のすべてのスレッドをウェイクアップし、そのうちの1つが、ミューテックスのロックを解除する前に条件を再度falseにする可能性があるためです(したがって、その時点で実行されるべきではない別のウェイクアップされたスレッドに実行を転送します点)。しかし、私が使用する場合、私は1つのpthread_cond_signal()スレッドだけをウェイクアップするので、条件は真でなければなりません。したがって、コードは次のようになります。

発生する可能性のあるスプリアス信号について何かを読みました。これ(そしてこれだけ)が理由ですか?なぜ私は偽の歌を持っている必要がありますか?それとも私が得られない何かがありますか?

信号コードは次のようになっていると思います。