JUC中的AQS底层详细超详解( 五 )


每次唤醒时,将nanosTimeout减去阻塞所花的时间,重新确认,并修改lastTime
关键部分见下图

JUC中的AQS底层详细超详解

文章插图
spinForTimeoutThreshold是什么?首先这个值是写死的1000L即1000纳秒
1000纳秒是个非常小的数字,而小于等于1000纳秒的超时等待,无法做到十分的精确,那么就不要使用这么短的一个超时时间去影响超时计算的精确性,所以这时线程不做超时等待,直接做自旋就好了 。
点击关注,第一时间了解华为云新鲜技术~

推荐阅读