C programlama dili, birden fazla işlemi aynı anda yürütmek için çoklu iş parçacığı (multi-threading) desteği sunar. Multi-threading, programın verimliliğini artırabilir ve aynı anda birden fazla işlemi gerçekleştirebilir.
Aşağıdaki C kodu multi-thread kullanarak bir metin dosyasının satır sayısını hesaplar:
#include <stdio.h> #include <stdlib.h> #include <pthread.h> #define NUM_THREADS 4 void *count_lines(void *filename) { char *file = (char *)filename; FILE *fp = fopen(file, "r"); if (fp == NULL) { printf("Error opening file.\n"); pthread_exit(NULL); } int count = 0; char c; while ((c = fgetc(fp)) != EOF) { if (c == '\n') { count++; } } printf("%s: %d lines\n", file, count); fclose(fp); pthread_exit(NULL); } int main(int argc, char *argv[]) { pthread_t threads[NUM_THREADS]; int i; if (argc < 2) { printf("Usage: %s file1 file2 file3 ...\n", argv[0]); exit(1); } for (i = 0; i < argc - 1 && i < NUM_THREADS; i++) { pthread_create(&threads[i], NULL, count_lines, (void *)argv[i+1]); } for (i = 0; i < NUM_THREADS; i++) { pthread_join(threads[i], NULL); } return 0; }
Bu programda, count_lines() fonksiyonu, bir dosyadaki satır sayısını hesaplar. main() fonksiyonu, her bir dosya için bir iş parçacığı oluşturur ve pthread_create() fonksiyonu ile bu iş parçacıklarını başlatır. Daha sonra, pthread_join() fonksiyonu ile tüm iş parçacıklarının tamamlanmasını bekler ve sonuçları ekrana yazdırır.
Not: Bu sadece bir örnektir ve çoklu iş parçacığı programlama için daha gelişmiş teknikler de mevcuttur.