The only thread-related type of which protocol programmers need be aware is the type Semaphore. However, this type is defined by the underlying platform and is opaque to the protocol programmer.