Teknoloji

C - Multi Threads(Çoklu İş Parçacığı)

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:

Reklam Alanı

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

Reklam Alanı

Daha Fazla

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.

Reklam Alanı

Daha Fazla

Yorumlar

Yorum Yapın

İlginizi çekebilir

Google Now Launcher Kapatılıyor

Nedese

Nedese Panel

Ücretsiz denemeye başlamak için kullanıcı yönetim paneline gitmeniz yeterli. İhtiyaçlarınıza uygun araçlarımızla süreçlerinizi kolaylaştırın ve verimliliğinizi artırın!

Ücretsiz Denemeye Başla
NedeseAI