18 lines
872 B
Plaintext
18 lines
872 B
Plaintext
Assignment name: mutex_basics
|
|
Expected files: mutex_basics.c
|
|
Allowed functions: memset, printf, malloc, free, write, pthread_create, pthread_detach
|
|
pthread_join, pthread_mutex_init, pthread_mutex_destroy
|
|
pthread_mutex_lock, pthread_mutex_unlock, usleep, gettimeofday
|
|
--------------------------------------------------------------------------------------
|
|
|
|
Cria um programa com uma variável global `counter` inicializada a 0.
|
|
Lança 4 threads que incrementam esta variável 1000 vezes cada uma.
|
|
Usa um mutex para proteger o acesso à variável.
|
|
|
|
O programa deve imprimir o valor final de `counter` (deve ser 4000) e o tempo total de execução.
|
|
|
|
Uso: `./mutex_basics`
|
|
|
|
Hint: Sem mutex, vais ver valores incorretos devido a race conditions.
|
|
O mutex garante que apenas uma thread acede à variável de cada vez.
|
|
Este é o conceito fundamental para o projeto Philosophers. |