Thread was a poor choice of word. Outside the control of the program is a better way to put it. Like memory mapped io.
It's almost universally better to use inline assembly via a macro to read/write mmio rather than use volatile.
It's almost universally better to use inline assembly via a macro to read/write mmio rather than use volatile.