codice:
void *mat()
{
    int local,i;
    pthread_mutex_lock(&mut1);
    local=global; global++;
    pthread_mutex_unlock(&mut1);
    
    for(i=0;i<n;i++)
        *(mc+local*n+i)=(*(mb+local*n+i))+(*(ma+local*n+i));
    
    pthread_mutex_lock(&mut2);
    cont++;
    if(cont==n)
        pthread_cond_signal(&cond);
    pthread_mutex_unlock(&mut2);
    pthread_exit(0);
}
Tutti i thread possono modificare i valori della matrice contemporaneamente, quindi i valori letti sono spuri.
Il for devi eseguirlo prima di aprire il mutex.