Spinlocks are essentially useless in UP case. They will just burn their time slice. They would better sleep in UP. In case of SMP spinlocks may be preferred over sleeping, if expected wait time is lower than average time that is needed to get time slice again for this thread.
Answering your question "how do they work"? Exactly the same everywhere, just spending CPU time in their time slice.