阻塞锁
阻塞锁如其名,就是当拿不到这个数据的锁,当前线程就会阻塞,直到被唤醒,相当于暂停这个线程的工作,让这个线程不会占用CPU时间,但缺点是线程恢复速度要比自旋锁慢。
自旋锁
自旋锁是指当代码块拿不到锁的时候,就会进入一个循环,循环请求该数据的锁。线程工作不会终止。相当于你在上厕所,另一个人一直敲门问你“完事了吗?”无限循环。
总结:线程竞争激烈的时候用阻塞锁,不激烈的时候用自旋锁。
阻塞锁如其名,就是当拿不到这个数据的锁,当前线程就会阻塞,直到被唤醒,相当于暂停这个线程的工作,让这个线程不会占用CPU时间,但缺点是线程恢复速度要比自旋锁慢。
自旋锁是指当代码块拿不到锁的时候,就会进入一个循环,循环请求该数据的锁。线程工作不会终止。相当于你在上厕所,另一个人一直敲门问你“完事了吗?”无限循环。
总结:线程竞争激烈的时候用阻塞锁,不激烈的时候用自旋锁。