每次唤醒时,将nanosTimeout减去阻塞所花的时间,重新确认,并修改lastTime
关键部分见下图
文章插图
spinForTimeoutThreshold是什么?首先这个值是写死的1000L即1000纳秒
1000纳秒是个非常小的数字,而小于等于1000纳秒的超时等待,无法做到十分的精确,那么就不要使用这么短的一个超时时间去影响超时计算的精确性,所以这时线程不做超时等待,直接做自旋就好了 。
点击关注,第一时间了解华为云新鲜技术~
推荐阅读
- Briefings in Bioinformatics-2021 知识图谱-生物信息学-医学顶刊论文:生物信息学中的图表示学习:趋势、方法和应用
- golang中的nil接收器
- golang中的字符串
- DevOps|从特拉斯辞职风波到研发效能中的不靠谱人干的荒唐事
- 月圆之夜镜中的记忆全成就攻略是什么
- 怎样转发微信内容到朋友圈(如何将微信中的内容转发到朋友圈)
- 4 Java I/O:AIO和NIO中的Selector
- 时空中的绘旅人诸界归一出行服装羽翼获取方法是什么
- 时空中的绘旅人服装的获取方法是什么
- 划拳中的十五、二十怎么玩啊(划拳必赢的十大技巧)