- Each thread in a process is identified by a thread ID, type pthread_t.
- Upon creation, each thread executes a thread function. This is just an ordinary function and contains the code that the thread should run. When the function returns, the thread exits.
- The pthread_create function creates a new thread. You provide it with the following:
- A pointer to a pthread_t variable, in which the thread ID of the new thread is stored.
- A pointer to a thread attribute object. This object controls details of how the thread interacts with the rest of the program. If you pass NULL as the thread attribute, a thread will be created with the default thread attributes.
- A pointer to the thread function. This is an ordinary function pointer, of this type:
void* (*) (void*)
- A thread argument value of type void*. Whatever you pass is simply passed as the argument to the thread function when the thread begins executing.
- A call to pthread_create returns immediately, and the original thread continues executing the instructions following the call. Meanwhile, the new thread begins executing the thread function. Linux schedules both threads asynchronously. http://siber.cankaya.edu.tr/SystemsProgramming/cfiles/thread-create.cthread-create.c (see Fig. 1)
Figure 1:
Create a Thread
|
- Under normal circumstances, a thread exits in one of two ways;
- by returning from the thread function. The return value from the thread function is taken to be the return value of the thread.
- a thread can exit explicitly by calling pthread_exit.
Subsections
2006-03-24