Spinlocks are lightweight synchronization primitives which are used to protect access to data structures. Spinlocks are used to access data structures for a very short period of time. When a thread attempting to acquire a spinlock and if it is unable to obtain access it executes in a loop periodically checking to determine if the resource is available instead of immediately yielding.
After some period of time a thread waiting on a spinlock will yield before it is able to acquire the resource in order to allow other threads running on the same CPU to execute. This is known as a backoff.
When a large number of threads are contending for access to a single spinlock and it can lead to performance problems
You can use below DMV to get the SPIN LOCK information
select * from sys.dm_os_spinlock_stats
Examples
FGCP_PRP_FILL
OPT_IDX_STATS
BUF_FREE_LIST
this site have lots of sql questions http://www.crackyourinterview.com