What is this code doing exactly? Please explain in detail so I can better understand the process. Thank you   #include #include #include #include #include   #define MAX 100   static void * threadFunc (void *arg) { char *str = (char *) arg; int count = 0; printf("\nThread: threadFunc started \n");   while(1) { sleep(1); printf("\n threadFunc: executing loop \n"); }   sleep(5); printf("\nThread: threadFunc exiting \n");   } int main(int argc, char *argv[]) // init thread or main thread { pthread_t t1_id; void *res; int s; int count;   s = pthread_create(&t1_id, NULL, threadFunc, NULL); if ( s != 0 ) //if creating the new thread is successful, then s will be zero. { perror("Thread create error"); }   for (count = 0; count < 10; count++) { sleep(2); printf("\n main thread: count value = (%d) \n", count);   } pthread_cancel(t1_id);   printf("main thread: exiting now \n ");   pthread_exit(NULL); //The main will exit without waiting for the thread. The thread will exit without expecting to send a // a result to the main.   }

Database System Concepts
7th Edition
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Chapter1: Introduction
Section: Chapter Questions
Problem 1PE
icon
Related questions
Question

What is this code doing exactly? Please explain in detail so I can better understand the process. Thank you

 



#include <pthread.h>

#include <stdio.h>

#include <stdlib.h>

#include <unistd.h>

#include <string.h>

 

#define MAX 100

 

static void * threadFunc (void *arg)

{

char *str = (char *) arg;

int count = 0;

printf("\nThread: threadFunc started \n");

 

while(1) {

sleep(1);

printf("\n threadFunc: executing loop \n");

}

 

sleep(5);

printf("\nThread: threadFunc exiting \n");

 

}




int main(int argc, char *argv[]) // init thread or main thread

{

pthread_t t1_id;

void *res;

int s;

int count;

 

s = pthread_create(&t1_id, NULL, threadFunc, NULL);

if ( s != 0 ) //if creating the new thread is successful, then s will be zero.

{

perror("Thread create error");

}

 

for (count = 0; count < 10; count++)

{

sleep(2);

printf("\n main thread: count value = (%d) \n", count);

 

}

pthread_cancel(t1_id);

 

printf("main thread: exiting now \n ");

 

pthread_exit(NULL); //The main will exit without waiting for the thread. The thread will exit without expecting to send a

// a result to the main.

 

}

Expert Solution
steps

Step by step

Solved in 3 steps

Blurred answer
Knowledge Booster
Avoiding deadlock
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
Recommended textbooks for you
Database System Concepts
Database System Concepts
Computer Science
ISBN:
9780078022159
Author:
Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:
McGraw-Hill Education
Starting Out with Python (4th Edition)
Starting Out with Python (4th Edition)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON
Digital Fundamentals (11th Edition)
Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON
C How to Program (8th Edition)
C How to Program (8th Edition)
Computer Science
ISBN:
9780133976892
Author:
Paul J. Deitel, Harvey Deitel
Publisher:
PEARSON
Database Systems: Design, Implementation, & Manag…
Database Systems: Design, Implementation, & Manag…
Computer Science
ISBN:
9781337627900
Author:
Carlos Coronel, Steven Morris
Publisher:
Cengage Learning
Programmable Logic Controllers
Programmable Logic Controllers
Computer Science
ISBN:
9780073373843
Author:
Frank D. Petruzella
Publisher:
McGraw-Hill Education