問題タブ [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.

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

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 の制限を知る必要があるだけです。

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

winapi - Pthread win32 libraray、PTHREAD_PROCESS_SHARED はサポートされていません

mqueue を実装するために pthread win32 ライブラリを使用しています。しかし、次のコードが実行されると、#40 エラーがスローされます。これは、システムがサポートされていないことを意味します。

それがうまくいかなかった後、私は40歳です。これについて考えている体はありますか?または、どの種類のWIN32スレッド関数を使用して置き換えるなど、他の代替ソリューションがありますか。

注: win32 で mqueue の実装に成功した人はいますか? ありがとう

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

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++ クラスを意図的に省略しました。救助へのブーストを提案しているすべての人々のために:管理上の理由により、私の現在のプロジェクトではオプションではありません。

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

windows - pthread win32 バージョン? (マングース)

pthread のバージョン (VC2、VCE2、VSE2) の違いを教えてください。Mongoose Web サーバー ライブラリの Visual C++ Express 2010 で使用する必要があるものを選択するにはどうすればよいですか?

ありがとうございました!!!

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

c - Windows で Pthreads を実行する方法

以前は Mac を使用していくつかの C プログラムを作成していましたが、現在は機能していません。
しばらくの間、古い Windows ラップトップを使用する必要があります。

コードブロックをインストールし、Pthreads を使用して簡単なプログラムをテストしました。残念ながらうまくいきませんでした。

への未定義の参照を言い続けます_imp__pthread_create

どうすれば修正できますか?

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

php - PHPのpthreadがApacheで並列スレッドを実行しない

PHP用のpthreads拡張機能を使用しています。WindowsでPHPスクリプトを実行すると、cmd並列スレッドが取得されますが、Apacheから同じスクリプトを呼び出すと、異なる結果が得られ、単一スレッドの実行のように見えます。

cmdApacheが(並列)のような応答を得るために作成する必要のある構成はありますか?

サンプルコードは次のように応答しますcmd

Webブラウザの場合:

更新:ブラウザが異なれば、結果も異なります。この問題は、これから調査するバッファに関連している可能性があります。

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

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

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

c++ - pthread-win32でメインスレッドがワーカースレッドより遅いのはなぜですか?

メイン スレッドとワーカー スレッドは同じ速度で実行されるはずですが、結果は次のようになります。

メインスレッドがずっと遅いです。理由はわかりません....


問題が解決しました。これはコンパイラの問題で、Windows で GCC(MinGW) の動作がおかしいのです。Visual Studio 2012 でコードをコンパイルしましたが、速度に違いはありません。

0 投票する
0 に答える
1104 参照

c++ - win32 での pthread_cond_timedwait の問題

Windows 環境と Linux 環境の両方で使用されるプログラムに pthread を使用しています。Windows の場合、Win 32 バージョン 2.9.1 (最新) の pthread を使用しています。

pthread_cond_timedwait を使用して、マイクロ秒単位の時間を待機する必要があります。Linux ではすべて正常に動作しますが、Windows では、私の努力にもかかわらず、秒単位の解像度を下回ることはできません。

これは、pthread 関数を使用する方法です。

これは私が使用した gettimeofday() の実装です:

この簡単なテスト プログラムを使用しました。

Linux 出力:

勝つ出力:

どこが間違っていますか?

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

c - ウィンドウ プラットフォームで pthread を使用できません

私の環境は Windows8.1 (64bit) で、Visual Studio 2010 を使用しています。

すべての *.dll ファイルを system32 、 SYSWOW64 に配置しました(win8 64ビットを使用しているため)。

VC 2010 を使用する x64 システム用の *.lib ファイルの場所をリンクします。

もちろん、フォルダー lib forders.. を追加し、フォルダーを含める.. など..

しかし、「pthread-used」プロジェクトをコンパイルしようとすると、致命的なエラーが発生しました。

-ソース

-エラー

私を助けてください