Thread Nedir ?
Thread Oluşturma
Yeni bir thread oluşturmak için pthread_create fonksiyonu kullanılır.
Thread fonksiyonlarının kullanımı için pthread.h başlık dosyası include edilmelidir.
Threadler ana program ile aynı adresleme alanını ve aynı file descriptor'ları kullanırlar.
Pthread kütüphanesi aynı zamanda senkronizasyon işlemleri için gerekli mutex ve conditional işlemleri için gerekli desteği de içermektedir.
thread parametresi pthread_t türünde olup önceden tanımlanması gerekir. Oluşan thread'e bu referansla her zaman erişilebilecektir.
attr parametresi thread spesifik olarak pthread_attr_ ile başlayan fonksiyonlarla ayarlanmış, scheduling policy, stack büyüklüğü, detach policy gibi kuralları gösterir.
start_routine thread tarafından çalıştırılacak olan fonksiyonu gösterir.
arg ise thread tarafından çalıştırılacak fonksiyona geçirilecek void*'a cast edilmiş genel bir veri yapısını göstermektedir.
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <pthread.h>
void *worker(void *data)
{
char *name = (char*)data;
for (int i=0; i<120; i++) {
usleep(50000);
printf("Hello from thread %s\n", name);
}
printf("Thread %s done...\n", name);
return NULL;
}
int main(void) {
pthread_t th1, th2;
pthread_create(&th1, NULL, worker, "A");
pthread_create(&th2, NULL, worker, "B");
sleep(5);
printf("Exiting from main program\n");
return 0;
} // Kaynak : https://medium.com/@gokhansengun/semaphore-mutex-ve-spinlock-nedir-ve-ne-i%C5%9Fe-yarar-ba552a17c03

0 Yorumlar