#include <stdio.h>
#include <pthread.h>
#include <unistd.h>
#include <sys/syscall.h>
// Функция потока
void* worker(void* arg) {
int id = *(int*)arg;
printf("Поток %d запущен. PID: %d, TID: %ld\n", id, getpid(), syscall(SYS_gettid));
for(int i = 0; i < 5; i++) {
printf("Поток %d: шаг %d\n", id, i);
sleep(1);
}
return NULL;
}
int main() {
pthread_t t[3];
int ids[3] = {0, 1, 2};
// Создание 3 потоков
for(int i = 0; i < 3; i++)
pthread_create(&t[i], NULL, worker, &ids[i]);
// Ожидание завершения всех потоков
for(int i = 0; i < 3; i++)
pthread_join(t[i], NULL);
return 0;
}