An Example: Thread Creation

In this lesson, you will go over the process of thread creation with the help of an example.

We'll cover the following...

Let’s get into some of the details. Say you wanted to run a program that creates two threads, each of which does some independent work, in this case, printing “A” or “B”. The code is shown in the code widget below.

#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>

#include "common.h"
#include "common_threads.h"

void *mythread(void *arg) {
    printf("%s\n", (char *) arg);
    return NULL;
}

int main(int argc, char *argv[]) {                    
    if (argc != 1) {
	fprintf(stderr, "usage: main\n");
	exit(1);
    }

    pthread_t p1, p2;
    printf("main: begin\n");
    Pthread_create(&p1, NULL, mythread, "A"); 
    Pthread_create(&p2, NULL, mythread, "B");
    // join waits for the threads to finish
    Pthread_join(p1, NULL); 
    Pthread_join(p2, NULL); 
    printf("main: end\n");
    return 0;
}
Simple Thread Creation Code (t0.c)

Explanation

The main program creates two threads, each of which will run the function mythread(), though with different arguments (the string A or B). Once a thread ...