I uppg3a.c låser tråd 1 m1 sedan m2, tråd 2 låser m2 och sedan m1, detta gör att det är 
möjligt att tråd1 har låst m1 och väntar på att låsa m2 medans tråd2 har låst m2 och 
väntar på att låsa m1. Så båda trådarna kan vänta på varandra och då fortsätter thread 
att vara 0 i all evighet.

I uppg3b.c låser trådarna den första resursen de vill ha och sedan försöker de låsa den 
andra resursen de vill ha men om de misslykas med att låsa det andra resursen så istället 
för att vänta på den så låser tråden istället upp den resursen tråden redan hade låst. 
Om det här programmet hammnar i situationen där båda trådrana har låst en resurs så 
skulle en av trådarna ge upp sinn låsta resurs och detta programm kan därför inte fastna 
i en situation där två trådar väntar på varandra. 



 
