Den första (A) har 2 problem i sin struktur.
Det första är att sleepen ligger imellan mutex lock för begge trådarna.
Eftersom den ena tråden låser m1 och sen sleepar medans den andra låster m2 och sen sleepar
så är det sannorligt att vid sleepen byter OSet tråd.
Eftersom de nu har varsin mutex låst och väntar på varandras låsta mutex blir det en deadlock.

Första lösningen till detta är att sätta sleepen under båda låsningarna men med lite mer otur
så kan man fortfarande få en deadlock då OSet fortfarande kan byta körande tråd mitt emellan de
dom olika mutex losningarna.
Andra lösningen är att låsa mutexarna i samma årdning dock är detta inte häller lika bra som i 
exempel (B) eftersom dom fortfarande kan vela begära varandras låsta mutexar.

Anledningen (B) fungerar är några anledningar.
Dels så sitter det inte en sleep mitt emellan mutex lockarna.
trådarna anpassar sig även efter den andra trådens behov. Detta gör (B) genom att använda trylock istället.
Trylock försöker låsa en mutex men om den misslyckas så går den fortfarande vidare.
När tråden då går vidare så låser den upp tidigare låsta del villket resulterar i att den andra 
tråden kan fortsätta med sin kritiska sektion.



(uppg22 är min upgift 2, jag vet inte riktigt hur ömtåligt namn osv är hoppas det inte ställer till det) 
