线程阻塞
LockSupport 相比较suspend会造成永久被挂起,它是安全的,即使unpark()方法再在前面执行也无所谓,因为它的底层使用的信号量,为每一个线程准备了许可,如果许可可用,则park惠消费它,如果不可以不可用则阻塞等待,而unpark是将一个许可变成可用,但是和信号量有些许区别,它是不可以累加的,每次最多有一个许可。
1 | public class LockSupportDemo { |
LockSupport 相比较suspend会造成永久被挂起,它是安全的,即使unpark()方法再在前面执行也无所谓,因为它的底层使用的信号量,为每一个线程准备了许可,如果许可可用,则park惠消费它,如果不可以不可用则阻塞等待,而unpark是将一个许可变成可用,但是和信号量有些许区别,它是不可以累加的,每次最多有一个许可。
1 | public class LockSupportDemo { |