Uppgift 3b gör istället för 3a så att den testar att låsa med trylock 
istället för att direkt köra lock. Båda programmen gör väntar en 
slumpmässig tid innan resursen släpps, den stora skillnaden är alltså 
att 3b "frågar" innan låsning.


3a:

int dur; sleep(choose(3)); if(!run)break;
    pthread_mutex_lock(&m2); sleep(1);
    pthread_mutex_lock(&m1);
    dur=choose(3); while(dur--) {thread=2; sleep(1);} thread=0;
    pthread_mutex_unlock(&m1); pthread_mutex_unlock(&m2);


3b:

if(pthread_mutex_trylock(&m2)) {
      dur=choose(3); while(dur--) {thread=1; sleep(1);} thread=0;
      pthread_mutex_unlock(&m1); pthread_mutex_unlock(&m2);
    }
    else pthread_mutex_unlock(&m1);


