PThread Essentials: Thread Creation, Synchronization, and Advanced Techniques
This session reviews PThread fundamentals and advanced techniques in C, covering thread creation, termination, attributes, mutexes, reader‑writer locks, condition variables, semaphores, barrier synchronization, and thread‑specific data, with code examples and a concluding homework assignment.
Technical Night School session 7 presented by casa, covering PThread fundamentals and advanced usage in C.
Key topics include thread creation with pthread_create , its signature, and handling thread attributes.
Discussion of thread termination methods: pthread_join , pthread_exit , pthread_cancel , pthread_kill , and return statements.
Explanation of the eight thread attributes, focusing on detach state and its impact on resource reclamation.
Mutex lock API (init, destroy, lock, unlock, trylock) with example code.
void *print_message(void *ptr) {
char *msg = (char *)ptr;
printf("%s\n", msg);
}
int main() {
pthread_t t1, t2;
pthread_create(&t1, NULL, print_message, "Thread 1");
pthread_create(&t2, NULL, print_message, "Thread 2");
pthread_join(t1, NULL);
pthread_join(t2, NULL);
return 0;
}Reader‑Writer lock API and usage patterns.
Condition variables: init, wait, signal, broadcast, and the necessity of pairing with a mutex.
pthread_mutex_lock(&mutex);
while (!ready) {
pthread_cond_wait(&cond, &mutex);
}
pthread_mutex_unlock(&mutex);Semaphore API (init, wait, post) for producer‑consumer coordination, with a sample buffer implementation.
sem_wait(&buffer.empty);
sem_wait(&buffer.pmut);
buffer.buf[buffer.nextin] = item;
buffer.nextin = (buffer.nextin + 1) % BSIZE;
sem_post(&buffer.pmut);
sem_post(&buffer.occupied);Barrier synchronization to align multiple threads at a common point.
pthread_barrier_init(&barrier, NULL, THREAD_COUNT);
... // thread work
pthread_barrier_wait(&barrier);Thread‑specific data (TSD) using pthread_key_create , pthread_setspecific , and pthread_getspecific to store per‑thread state.
The session concludes with a homework assignment encouraging participants to apply the concepts.
DeWu Technology
A platform for sharing and discussing tech knowledge, guiding you toward the cloud of technology.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.