問題タブ [pthreads-win32]
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.
windows - さまざまな Windows コンパイラでの pthreads-win32 の移植性
Windowsのスレッドサポートを許可するためにpthreads-win32を使用しています。
pthreads を使用するクロスプラットフォーム プロジェクトがあり、さまざまなコンパイラとさまざまな OS バージョンの Windows で動作するようにしたいと考えています。
少なくとも、ドキュメントによると、 pthreads-win32 は MSVC で動作し、提供されている MSVC ビルドでも動作するはずです。
ただし、ライブラリが MSVC-2008 などの最新の MSVC コンパイラでテストされているかどうか、および 64 ビット ウィンドウでサポートされているかどうかはわかりません。
あなた自身の経験から、このライブラリの問題を認識していますか?
- MSVC8、MSVC9、MSVC10 に問題はありますか?
- Windows x86_64 に問題はありますか?
- Windows Vista/Windows 7 に問題はありますか?
ノート:
- Boost.Thread の使用を推奨しようとさえしないでください。私は興味がありません。また、Boost.Thread ライブラリには精通しています。
- Win32 API (RW ロック、条件変数などがない) を使用してホイールを再発明することには興味がありません。
- MSVC-2008 と MinGW GCC-4.3 を使用してプロジェクトをコンパイルし、現在コンパイル済みの pthreads DLL を使用して簡単に単体テストを実行することができました。
pthreads-win32 の制限を知る必要があるだけです。
winapi - Pthread win32 libraray、PTHREAD_PROCESS_SHARED はサポートされていません
mqueue を実装するために pthread win32 ライブラリを使用しています。しかし、次のコードが実行されると、#40 エラーがスローされます。これは、システムがサポートされていないことを意味します。
それがうまくいかなかった後、私は40歳です。これについて考えている体はありますか?または、どの種類のWIN32スレッド関数を使用して置き換えるなど、他の代替ソリューションがありますか。
注: win32 で mqueue の実装に成功した人はいますか? ありがとう
c++ - pthread-win32 拡張機能 sem_post_multiple
私は現在、社内で使用する pthreads の周りに薄い C++ ラッパーを構築しています。QNX と同様に Windows もターゲットにされており、幸いなことに pthreads-win32 ポートは非常にうまく機能しているように見えますが、QNX は実用的な目的のために POSIX に準拠しています。
今、セマフォを実装しながら、関数をヒットしました
これは明らかに pthreads-win32 でのみ利用可能ですが、QNX にはありません。名前が示すように、この関数は、2 番目の引数として指定された数だけセマフォをインクリメントすることになっています。私が知る限り、この関数は POSIX 1b にも POSIX 1c にも含まれていません。
現在、上記の関数の要件はありませんが、pthreads-win32 が関数を提供する理由と、それが役立つかどうかについてはまだ疑問に思っています。次のようなものを使用して、QNX でそれを模倣することができます。
私が求めているのは、進め方についての提案/アドバイスです。コンセンサスが QNX の機能を実装することを提案している場合は、提案された抜粋されたコードが実行可能な解決策であるかどうかについてもコメントをいただければ幸いです。
前もって感謝します。
PS: わかりやすくするために、派手な C++ クラスを意図的に省略しました。救助へのブーストを提案しているすべての人々のために:管理上の理由により、私の現在のプロジェクトではオプションではありません。
windows - pthread win32 バージョン? (マングース)
pthread のバージョン (VC2、VCE2、VSE2) の違いを教えてください。Mongoose Web サーバー ライブラリの Visual C++ Express 2010 で使用する必要があるものを選択するにはどうすればよいですか?
ありがとうございました!!!
c - Windows で Pthreads を実行する方法
以前は Mac を使用していくつかの C プログラムを作成していましたが、現在は機能していません。
しばらくの間、古い Windows ラップトップを使用する必要があります。
コードブロックをインストールし、Pthreads を使用して簡単なプログラムをテストしました。残念ながらうまくいきませんでした。
への未定義の参照を言い続けます_imp__pthread_create
どうすれば修正できますか?
php - PHPのpthreadがApacheで並列スレッドを実行しない
PHP用のpthreads拡張機能を使用しています。WindowsでPHPスクリプトを実行すると、cmd
並列スレッドが取得されますが、Apacheから同じスクリプトを呼び出すと、異なる結果が得られ、単一スレッドの実行のように見えます。
cmd
Apacheが(並列)のような応答を得るために作成する必要のある構成はありますか?
サンプルコードは次のように応答しますcmd
。
Webブラウザの場合:
更新:ブラウザが異なれば、結果も異なります。この問題は、これから調査するバッファに関連している可能性があります。
c++ - pthread_cond_timedwait がエラー 138 を返す
Googleでこれに関する情報を見つけることができないので、誰かが助けてくれることを願ってここに投稿します...
私の問題は、Windows の pthread 関数にありますpthread_cond_timedwait()
。指定された時間が経過すると、関数は値 ETIMEDOUT を返す必要があります。代わりに、条件変数が通知されていないコードでは、値 138 が返され、予想されるタイムアウトよりもはるかに早く、場合によってはすぐに実行されます。
私の質問は次のとおりです。このエラー 138 は何ですか? また、タイムアウトが完全に経過していないのはなぜですか? スレッドに使用するコードは次のとおりです。
絶対タイムアウトの計算に何か問題がありますか?
このスレッドと呼び出しスレッドのみが存在します。呼び出し元は、作成直後に作成されたものに参加し、終了するまで正しく待機します。現在、条件変数cond_
は通知されませんが、それを実行しようとすると、pthread_cond_timedwait()
期待どおりに値 0 が返されます。ここに示されていなくても、cond_
との両方mutex_
が正しく初期化されています (そうしないと、EINVAL エラーが発生します)。
また、pthread コードに従っても、このエラーが見つかりません。作れるものしか見つけられreturn errno
ないのですが、138の意味がわかりません。
それが役立つ場合は、pthreads win32 v2.9.1 で Visual Studio 2003 を使用しています。
ありがとう、
RG
c++ - pthread-win32でメインスレッドがワーカースレッドより遅いのはなぜですか?
メイン スレッドとワーカー スレッドは同じ速度で実行されるはずですが、結果は次のようになります。
メインスレッドがずっと遅いです。理由はわかりません....
問題が解決しました。これはコンパイラの問題で、Windows で GCC(MinGW) の動作がおかしいのです。Visual Studio 2012 でコードをコンパイルしましたが、速度に違いはありません。
c++ - win32 での pthread_cond_timedwait の問題
Windows 環境と Linux 環境の両方で使用されるプログラムに pthread を使用しています。Windows の場合、Win 32 バージョン 2.9.1 (最新) の pthread を使用しています。
pthread_cond_timedwait を使用して、マイクロ秒単位の時間を待機する必要があります。Linux ではすべて正常に動作しますが、Windows では、私の努力にもかかわらず、秒単位の解像度を下回ることはできません。
これは、pthread 関数を使用する方法です。
これは私が使用した gettimeofday() の実装です:
この簡単なテスト プログラムを使用しました。
Linux 出力:
勝つ出力:
どこが間違っていますか?