pthread_create関数のネイティブな日本語での言い換え
C++ では、pthread_create 関数を使用して新しいスレッドを作成できます。この関数の宣言は以下のようになります。
int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine) (void *), void *arg);
パラメータの説明:
- スレッド:pthread_t型へのポインタ、新しく生成されたスレッドのIDを格納するために使用される。
- attr: pthread_attr_t型ポインタで、スレッドの属性を指定します。NULLにするとデフォルトの属性が使用されます。
- スタートルーチン: 新しいスレッドで実行する関数を指すポインタ。
- start_routine関数に渡される引数。
以下に簡単なpthread_create関数を使用して新しいスレッドを作成する例を示します。
#include <pthread.h>
#include <iostream>
void* threadFunc(void* arg) {
int value = *(int*)arg;
std::cout << "Hello from thread! Value = " << value << std::endl;
pthread_exit(NULL);
}
int main() {
pthread_t thread;
int value = 10;
int result = pthread_create(&thread, NULL, threadFunc, &value);
if (result != 0) {
std::cout << "Failed to create thread." << std::endl;
return 1;
}
pthread_join(thread, NULL); // 等待线程执行完毕
return 0;
}
上の例では、threadFuncという名前の関数を、新しいスレッドで実行する関数として定義しました。メイン関数で、まず、スレッドのIDを格納するためのpthread_t型の変数threadを作成します。次に、整数変数valueを作成し、それをパラメータとしてpthread_create関数に渡します。最後に、pthread_join関数を使用して、新しいスレッドの実行が終わるのを待ちます。
上記のプログラムを実行すると、「Hello from thread! Value = 10」が出力されます。これは、新しいスレッドが関数のthreadFuncを正しく実行し、それに渡されたパラメーターvalueにアクセスできたことを示します。