Experiment No 5
Experiment No 5
To utilize the PThread interfaces, we must include the header pthread.h at the start of the C
script.
#include <pthread.h>
PThreads is a highly concrete multithreading system that is the UNIX system’s default
standard. PThreads is an abbreviation for POSIX threads, and POSIX is an abbreviation for
Portable Operating System Interface, which is a type of interface that the operating system
must implement. PThreads in POSIX outline the threading APIs that the operating system
must provide.
Pthread program:
#include < pthread.h >
#include < stdio.h >
#include < stdlib.h >
#define NUM_THREADS 5
void *PrintHello(void *threadid)
{
long tid;
tid = (long)threadid;
printf("Hello World! It's me, thread #%ld!\n", tid);
pthread_exit(NULL);
}
int main(int argc, char *argv[])
{
pthread_t threads[NUM_THREADS];
int rc;
long t;
for(t=0;t< NUM_THREADS;t++){
printf("In main: creating thread %ld\n", t);
rc = pthread_create(&threads[t], NULL, PrintHello, (void *)t);
if (rc){
printf("ERROR; return code from pthread_create() is %d\n", rc);
exit(-1);
}
}
OUTPUT :
OUTPUT:
In main: creating thread 0
In main: creating thread 1
Hello World! It's me, thread #0!
In main: creating thread 2
Hello World! It's me, thread #1!
In main: creating thread 3
Hello World! It's me, thread #2!
In main: creating thread 4
Hello World! It's me, thread #3!
Hello World! It's me, thread #4!
On terminal you can use the Linux ps command provides several flags for
viewing thread information.
Example : - ps –Lf
Linux clusters also provide the top command to monitor processes on a
node. If used with the -H flag, the threads contained within a process will be
visible.
Example : - top –H