The next set оf questiоns lоok аt creаting new threаds. For the next questions, assume the following code is compiled and run on a modern Linux machine. Assume irrelevant details have been omitted and that no routines, such as pthread_create() or pthread_join(), ever fail. In-exam clarification: “modern Linux machine” implies a multi-processor system volatile int balance = 0;void *mythread(void *arg) { int i; for (i = 0; i < 100; i++) { balance++; } printf(“Balance is %dn”, balance); return NULL;}int main(int argc, char *argv[]) { pthread_t p1, p2, p3, p4; pthread_create(&p1, NULL, mythread, “A”); pthread_create(&p2, NULL, mythread, “B”); pthread_join(p1, NULL); pthread_join(p2, NULL); pthread_create(&p3, NULL, mythread, “C”); pthread_create(&p4, NULL, mythread, “D”); pthread_join(p3, NULL); pthread_join(p4, NULL); printf(“Final Balance is %dn”, balance);}