C言語で二つの関数を並行して実行するにはどうすればいいですか。
C言語では、2つの関数を並行して実行するためにマルチスレッドを使用することができます。スレッドを作成してpthreadライブラリを使用して、2つの関数を異なるスレッドで実行できます。
以下は、pthreadライブラリを使用して2つのスレッドを作成し、2つの関数を並行して実行するサンプルコードです。
#include <stdio.h>
#include <pthread.h>
void* func1(void* arg) {
for (int i = 0; i < 10; i++) {
printf("Function 1: %d\n", i);
}
return NULL;
}
void* func2(void* arg) {
for (int i = 0; i < 10; i++) {
printf("Function 2: %d\n", i);
}
return NULL;
}
int main() {
pthread_t thread1, thread2;
pthread_create(&thread1, NULL, func1, NULL);
pthread_create(&thread2, NULL, func2, NULL);
pthread_join(thread1, NULL);
pthread_join(thread2, NULL);
return 0;
}
上記のコードでは、func1とfunc2という2つの関数を定義し、main関数でpthread_create関数を使用してこれら2つの関数を実行するための2つのスレッドを作成します。最後に、pthread_join関数を使用して、2つのスレッドが完了し、リソースが回収されるのを待ちます。
マルチスレッドを使用することで、2つの関数を並行して実行させることができ、プログラムの性能と効率を向上させることができます。