Der Lock pausiert alle anderen Threads bis du den Lock wieder freigibst
oder der Thread durchgelaufen ist und sich somit selbst beendet. Du
kannst aber nicht 2 Threads gleichzeitig locken, immer nur einen.
Somit müsstest du den aktivien Thread locken der auf deinen MCP23017
zugreift. (So macht mans eig. immer bei zeitkritischen Schleifen oder
Prozeduren die beim Thread erst einmal durchlaufen müssen da sie sonst
falsche Werte an andere Threads oder ans Hauptprogramm liefern würden).
Prinzipiel genau richtig gedacht.