uppg3a.c ger ofta nollor då både tråd 1 och 2 låser sin närmsta mutex först (cykliskt).
Eftersom trådarna körs paralellt så blockerar dom dess närmsta mutex först, dvs tråd 1 blockerar m1 och tråd 2 blockerar m2, därefter försöker de låsa den andra mutexen vilket är omöjligt då den andra paralella tråden (ofta)redan har blockerat mutexen. Detta kan undvikas genom att bägge trådarna försöker låsa m1 först istället för att tråd 1 låser m1 först och tråd 2 låser m2 först. Vilket skulle bryta det cykliska mönstret.

uppg3b.c använder sig av pthread_mutex_trylock(); och har ett villkor som kollar om det lyckas eller inte, om det inte lyckas släpps den tidigare låsta mutex så den andra tråden har möjlighet att blockera den istället. 
Detta är ett ytterligare sätt att undvika deadlock från mitt förslag på uppg3a.c

