Try pthreads.cpp. Modify it so that they run 3 threads (instead of two) and each thread runs a different function, displaying a different message. Copy-and-paste the source code and the outputs in your report. /*   pthreads_demo.cpp   A very simple example demonstrating the usage of pthreads.   Compile: g++ -o pthreads_demo pthreads_demo.cpp -lpthread   Execute: ./pthreads_demo */   #include #include   using namespace std;   //The thread void * thread_func (void *data) {   char *tname = (char *) data;     printf("My thread identifier is %s\n", tname);     pthread_exit (0); }   int main () {   pthread_t id1, id2;           //thread identifiers   pthread_attr_t attr1, attr2;  //set of thread attributes   char *tnames[2] = { "Thread 1", "Thread 2" }; //names of threads   //get the default attributes   pthread_attr_init (&attr1);   pthread_attr_init (&attr2);     //create the threads   pthread_create (&id1, &attr1, thread_func, tnames[0]);   pthread_create (&id2, &attr2, thread_func, tnames[1]);     //wait for the threads to exit   pthread_join (id1, NULL);   pthread_join (id2, NULL);     return 0; }

Computer Networking: A Top-Down Approach (7th Edition)
7th Edition
ISBN:9780133594140
Author:James Kurose, Keith Ross
Publisher:James Kurose, Keith Ross
Chapter1: Computer Networks And The Internet
Section: Chapter Questions
Problem R1RQ: What is the difference between a host and an end system? List several different types of end...
icon
Related questions
Question

Try pthreads.cpp. Modify it so that they run 3 threads (instead of two) and each thread runs a different function, displaying a different message. Copy-and-paste the source code and the outputs in your report.

/*

  pthreads_demo.cpp

  A very simple example demonstrating the usage of pthreads.

  Compile: g++ -o pthreads_demo pthreads_demo.cpp -lpthread

  Execute: ./pthreads_demo

*/

 

#include <pthread.h>

#include <stdio.h>

 

using namespace std;

 

//The thread

void * thread_func (void *data)

{

  char *tname = (char *) data;

 

  printf("My thread identifier is %s\n", tname);

 

  pthread_exit (0);

}

 

int main ()

{

  pthread_t id1, id2;           //thread identifiers

  pthread_attr_t attr1, attr2;  //set of thread attributes

  char *tnames[2] = { "Thread 1", "Thread 2" }; //names of threads

  //get the default attributes

  pthread_attr_init (&attr1);

  pthread_attr_init (&attr2);

 

  //create the threads

  pthread_create (&id1, &attr1, thread_func, tnames[0]);

  pthread_create (&id2, &attr2, thread_func, tnames[1]);

 

  //wait for the threads to exit

  pthread_join (id1, NULL);

  pthread_join (id2, NULL);

 

  return 0;

}

Expert Solution
trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 4 steps with 2 images

Blurred answer
Recommended textbooks for you
Computer Networking: A Top-Down Approach (7th Edi…
Computer Networking: A Top-Down Approach (7th Edi…
Computer Engineering
ISBN:
9780133594140
Author:
James Kurose, Keith Ross
Publisher:
PEARSON
Computer Organization and Design MIPS Edition, Fi…
Computer Organization and Design MIPS Edition, Fi…
Computer Engineering
ISBN:
9780124077263
Author:
David A. Patterson, John L. Hennessy
Publisher:
Elsevier Science
Network+ Guide to Networks (MindTap Course List)
Network+ Guide to Networks (MindTap Course List)
Computer Engineering
ISBN:
9781337569330
Author:
Jill West, Tamara Dean, Jean Andrews
Publisher:
Cengage Learning
Concepts of Database Management
Concepts of Database Management
Computer Engineering
ISBN:
9781337093422
Author:
Joy L. Starks, Philip J. Pratt, Mary Z. Last
Publisher:
Cengage Learning
Prelude to Programming
Prelude to Programming
Computer Engineering
ISBN:
9780133750423
Author:
VENIT, Stewart
Publisher:
Pearson Education
Sc Business Data Communications and Networking, T…
Sc Business Data Communications and Networking, T…
Computer Engineering
ISBN:
9781119368830
Author:
FITZGERALD
Publisher:
WILEY