Communication Protocol mutex
Normally a communication protocol can only be used from one thread at a time. Starting a second read or write operation is not possible for most protocols. Thus a system has to be implemented to lock the protocol and let other requests wait.
Ideas: threading.Lock