Ein einfaches Beispiel wäre, daß ein Thread die Berechnungen durchführt, wärend ein anderer Thread auf Interaktionen des Benutzers wartet. Dies kann mittels Threads parallel geschehen, bei einem Programm mit nur einem Tread müßte die Berechnung zwischenzeitlich immer wieder unterbrochen werden, um Benutzereingaben abfragen zu können.
POSIX-Treads sind dabei der Standard, der auf UNIX-basierten Betriebsystemen existiert. Im Gegensatzt zu den Microsoft-style Threads, die für Windows-Rechner entwickelt wurden.
Obwohl POSIX-Threads ein sehr nützliches Werkzeug darstellen, kann ihre Verwendung sehr schnell zu einer komplexen Aufgabe anwachsen.
Ein kleines Beispiel:
/* * pthread.c - ein pthread beispielprogramm * * oliver schoenbrunner * * 27.4.1999 * */ #include <stdio.h> #include <pthread.h> #define SIZE 4 void *thread_func(void *no); int main(int argc, char **argv) { pthread_t thread[SIZE]; int i; void *arg; for (i=0; i<SIZE; i++) { arg=(void *)malloc(sizeof(int)); *(int *)arg=i; pthread_create(&thread[i], NULL, thread_func, arg); } sleep(3); return 0; } void *thread_func(void *no) { printf("thread # %d\n", *(int *)no); return (void *)1; }