4.5 Tugas
Tugas 1
Jalankan kode program berikut!
1.
soal.c
1 #include<stdio.h>
2 #include<string.h>
3 #include<pthread.h>
4 #include<stdlib.h>
5 #include<unistd.h>
6
7 int counter = 0;
8 pthread_t tid[4];
9
10 void* doSomeThing(void *arg) {
11 printf("\n Thread %d started, please wait...\n", counter);
12 counter++;
13
14 unsigned long i = 0;
15 for(i=0; i<(0xFFFFFFFF);i++);
16
17 printf("\n Thread %d finished\n", counter);
18
19 return NULL;
20 }
21
22 int main(void) {
23 int i;
24 for(i = 0; i < 4; i++)
25 pthread_create(&(tid[i]), NULL, &doSomeThing, NULL);
26
27 for(i = 0; i < 4; i++)
28 pthread_join(tid[i], NULL);
29
30 return 0;
31 }
3. Apa fungsi for pada baris 14? Berapa kali looping yang
dilakukan oleh perintah for tersebut?
For pada baris 14 sendiri berperan atau memiliki fungsi sebagai
salah satu penyebab keempat thread memiliki nilai counter yang
sama. For ini berfungsi untuk menjaga thread yang terbentuk
dalam kondisi running sambil memastikan thread yang lain
terbentuk terlebih dahulu sebelum looping selesai. Fungsi
lainnya yaitu untuk memberi jeda waktu antara ketika thread
dibuat dan thread berakhir.
Tugas 2
Tugas 3