0、pthreadのソースのダウンロード:https://sourceware.org/pthreads-win32/
次のように1は、pthreads-w32-2-9-1-release.zip完全に、エキスをダウンロードした後、読み込み
ここで、Win32のヘッダファイルやライブラリ、ソースコード[pthreads.2]、[]の事前built.2のpthreadのはQueueUserAPCExドライブ、必要支持WDKコンパイラである[されます]。
図2に示すように、ヘッダファイルのディレクトリをインストールディレクトリVS2017にコピーされ、現在の環境下で[Cである[\ \プレbuilt.2が\のpthread-w32-2-9-1放出が挙げられる。]:\プログラムファイル(x86の)\のMicrosoft Visual Studioの\ 2017 \エンタープライズ\ VC \ツール\ MSVC \ 14.16.27023 \含めます
3、静的ライブラリファイルは、インストールディレクトリのVS2017にコピーされ、現在の環境が[Cである[\ Pthreadsのw32-2-9-1-リリース - \プリbuilt.2 \ libに。]:\プログラムファイル(x86の)\のMicrosoft Visual Studioの\ 2017 \エンタープライズ\ VC \ツール\ MSVC \ 14.16.27023 \ libに]、のx86、およびx64用
[。\ Pthreadsの-w32-2-9-1リリース\プリbuilt.2 \ DLL] 4、動的ライブラリファイルは、Cに対応するシステムディレクトリ、x86のファイルにコピーされています:\ WINDOWS \ SYSWOW64ディレクトリ、x64のファイルは、 Cに対応:\ WINDOWS \ System32ディレクトリ
また、ライブラリには、プロジェクト内またはNugetもこのライブラリを見つけることができ、よりファッショナブルで参照することができます。
構成された後、次のコードをテストするために使用することができます。
1つの#include " pch.h " 2の#include <iostreamの> 3の#include <stdio.hの> 4の#include <pthread.hの> 5の#include <assert.h> 6 7 の#pragmaコメント(LIB、の「x86 / pthreadVC2 .LIB ") 8 9 ボイド * Function_t(ボイド * のParam) 10 { 11 のstd :: COUT << " 多线程" << はstd :: ENDL。 12 がpthread_t MYID = pthread_self()。 13 のstd :: coutの<< "<< myid.x << はstd ::てendl; 14 リターンNULL; 15 } 16 17 INT メイン(INT ARGC、CONSTのchar * ARGV []) 18 { 19 がpthread_tのPID。 20 のpthread_attr_t ATTR。 21 pthread_attr_init(&ATTR)。 22 pthread_attr_setscope(&ATTR、PTHREAD_SCOPE_PROCESS)。 23 pthread_attr_setdetachstate(&ATTR、PTHREAD_CREATE_DETACHED)。 24 のpthread_create(&PID、&ATTR、Function_t、NULL); 25 のstd :: coutの<< " ======================================== "<< はstd ::てendl; 26 GETCHAR()。 27 は、pthread_attr_destroy(&ATTR)。 28 リターン 0 ; 29 }
コンパイル時エラーであれば[C2011「TIMESPEC」:「構造体」タイプの再定義]、構造は、で定義されているため[pthread.hのTIME.H TIMESPEC繰り返し、同時に二つの異なるヘッダファイルは、その結果、条件をコンパイル定義された繰り返し構造]
ソリューション:
の#define PTHREAD_H