Использование функции pthread_create для создания потоков в языках C и C++
Функция `pthread_create` - это функция из библиотеки `pthread`, которая создает новый поток исполнения. Она принимает несколько аргументов, включая указатель на переменную, в которой будет сохранен идентификатор потока, функцию, которую будет выполнять поток, и необязательные аргументы для передачи в функцию.
Пример кода, который использует `pthread_create`, может выглядеть следующим образом:
c
#include
#include
// Функция, которую будет выполнять поток
void* thread_function(void* arg) {
int thread_arg = *(int*)arg;
printf("This is thread %d\n", thread_arg);
return NULL;
}
int main() {
pthread_t thread_id;
int thread_arg = 1;
// Создаем новый поток и передаем ему значение переменной thread_arg
pthread_create(&thread_id, NULL, thread_function, &thread_arg);
// Ожидаем завершения потока
pthread_join(thread_id, NULL);
return 0;
}
В этом примере мы создаем новый поток исполнения, передавая ему значение переменной `thread_arg` с помощью аргумента `&thread_arg`. Функция `thread_function` принимает это значение и выводит его на экран.
После создания потока мы вызываем функцию `pthread_join`, чтобы дождаться его завершения. Это позволяет гарантировать, что основной поток не завершится до того, как завершится созданный поток.
Пример выше демонстрирует базовое использование `pthread_create`. Существуют и другие параметры и возможности, которые можно использовать при создании и управлении потоками с использованием `pthread_create`.