Загрузка данных


#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;
}