berikut langkah-langkah ringkas untuk membuat thread sederhana pada linux:
1, pastikan telah ada include dan id dari thread sudah dicantumkan dalam kode
contoh:
#include<stdio.h>
#include<string.h>
#include<pthread.h>
#include<stdlib.h>
#include<unistd.h>
pthread_t tid[2];
catt: pthread_tid adalah untuk membuat thread id
2. buatlah thread pada inti program (int main) dengan menggunakan fungsi pthread_create
contoh:
pthread_create(&(tid[i]), NULL, &doSomeThing, NULL);
catt:
- tid[i] adalah id thread yang dibuat pada langkah 1
- &doSomeThing adalah fungsi yang dijalankan oleh thread
3. pastikan thread mempunyai fungsi yang dijalankan,
contoh:
void* doSomeThing(void *arg) {
unsigned long i = 0;
pthread_t id = pthread_self();
if(pthread_equal(id,tid[0])) {
printf("\n First thread processing\n");
}
else {
printf("\n Second thread processing\n");
}
for(i=0; i<(0xFFFFFFFF);i++);
return NULL;
}
catt: fungsi ini berkaitan dg langkah 2. fungsi ini yang dipassing pada pthread_create
4. jika ingin antarthread mengetahui satu sama lain (satu thread mengetahui ada thread lain, sehingga dalam berproses tidak error) gunakan fungsi pthread_join
contoh:
pthread_join(th1, NULL);
pthread_join(th2, NULL);
catt:
contoh ini jika misalnya ada dua thread bernama th1 dan th2 yang akan di-join
5. untuk menghindari race condition thread dapat digunakan pthread_mutex
1, pastikan telah ada include dan id dari thread sudah dicantumkan dalam kode
contoh:
#include<stdio.h>
#include<string.h>
#include<pthread.h>
#include<stdlib.h>
#include<unistd.h>
pthread_t tid[2];
catt: pthread_tid adalah untuk membuat thread id
2. buatlah thread pada inti program (int main) dengan menggunakan fungsi pthread_create
contoh:
pthread_create(&(tid[i]), NULL, &doSomeThing, NULL);
catt:
- tid[i] adalah id thread yang dibuat pada langkah 1
- &doSomeThing adalah fungsi yang dijalankan oleh thread
3. pastikan thread mempunyai fungsi yang dijalankan,
contoh:
void* doSomeThing(void *arg) {
unsigned long i = 0;
pthread_t id = pthread_self();
if(pthread_equal(id,tid[0])) {
printf("\n First thread processing\n");
}
else {
printf("\n Second thread processing\n");
}
for(i=0; i<(0xFFFFFFFF);i++);
return NULL;
}
catt: fungsi ini berkaitan dg langkah 2. fungsi ini yang dipassing pada pthread_create
4. jika ingin antarthread mengetahui satu sama lain (satu thread mengetahui ada thread lain, sehingga dalam berproses tidak error) gunakan fungsi pthread_join
contoh:
pthread_join(th1, NULL);
pthread_join(th2, NULL);
catt:
contoh ini jika misalnya ada dua thread bernama th1 dan th2 yang akan di-join
5. untuk menghindari race condition thread dapat digunakan pthread_mutex