Anda di halaman 1dari 2

Nama : Ni Made Krista Kurnia Dewi

NIM : 1208605049

Contoh listing program thread


#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
int value = 0;
void *runner (void *param); /* thread function */
int main(int argc, char *argv[])
{
int pid;
pthread_t tid;
pthread_attr_t attr;
pid = fork();
if (pid == 0) /*CHILD process*/
{
pthread_attr_init(&attr);
pthread_create(&tid, &attr, runner, NULL);
pthread_join(tid, NULL);
printf("CHILD: value = %d\n", value); /*Output Child*/
} else if (pid > 0) /* PARENT process */
{
wait(NULL);
printf("PARENT: value = %d\n", value); /*Output Parent*/
}
}
void *runner(void *param)
{
value = 10;
pthread_exit(0);
}

Output Program :

Penjelasan :
Pada output terlihat bahwa, proses eksekusi hanya terjadi pada proses child. Sedangkan
proses parent tidak melakukan proses apapun hanya menunggu proses child selesai. Hal ini
terlihat dari perintah wait(NULL).
Pada saat pid=0, child melakukan proses eksekusi thread dan menampilkan hasil dari
proses tesebut.
Kemudian pada saat pid>0, proses parent hanya menunggu terlihat dari perintah wait
(NULL) dan kemudian mencetak hasil proses eksekusi.
Berdasarkan output, pada program ini proses parent dan proses child tidak ada keterkaitan
satu sama lain.

Anda mungkin juga menyukai