首页 > 其他分享 >【一句话】Thread.sleep(0)的作用

【一句话】Thread.sleep(0)的作用

时间:2023-01-18 13:44:06浏览次数:32  
标签:Thread 一句 数据类型 循环 sleep JVM safepoint

首先一句话:

在循环中加入Thread.sleep(0),用于在循环中放入safepoint,JVM进行STW,然后触发GC。

详细:

说白了,它的作用就是给可数(int控制)循环加入safepoint,让JVM可以GC。

对于JVM,执行native函数的线程看作“已经进入safepoint“,而sleep就是一个native方法。

 

可数循环:使用int或更小数据类型控制的循环,直到循环结束才有safepoint

不可数循环:使用long或更大数据类型控制的循环,循环中可以存在safepoint

 

将循环控制变量数据类型修改为long和使用Thread.sleep(0)功能类似。

 

标签:Thread,一句,数据类型,循环,sleep,JVM,safepoint
From: https://www.cnblogs.com/maerpao/p/17059628.html

相关文章

  • 【一句话】@Configuration和@Component的区别
    首先一句话:@Configuration修饰的类会被Cglib动态代理,@Component不会。详细:Cglib动态代理生成当前对象的子类Class,并对方法拦截,多次调用@Bean方法时直接从BeanFactory之......
  • :first-child 伪类一句话解释
    关键词不起作用选不到失败解释input:first-child要求既是input元素,而且是兄弟节点中的第一个如果要找第一个input元素,那么用input:first-of-type如果要用first-ch......
  • threading模块中的Lock、RLock以及Condition
    一、互斥锁简介互斥锁为资源引入一个状态:锁定/非锁定。某个线程要更改共享数据时,先将其锁定,此时资源的状态为“锁定”,其他线程不能更改;直到该线程释放资源,将资源的状......
  • ThreadLocal作用
    Threadlocal特性1.线程间共享变量:一个线程在设置threadlocal值之后,当前线程无论在哪里都可以从设置的threadlocal中获取值,解决值传递的问题。2.不同线程间隔离:线程a在设......
  • Linux学习笔记:shell sleep睡眠
    一、介绍在Linux的bash中,利用sleep和usleep命令可以控制睡眠时长,进行延时操作。sleep:默认以秒为单位usleep:默认以微秒为单位(1s=1000ms=1000000us)具体例......
  • 【一句话】布隆过滤器
    首先一句话:使用hash值保存到bitmap进行值是否已存在的判定:不存在->一定不存在,存在->可能存在。用途(例):1.判断随机数是否重复使用:Redis的SetBit/GetBit可以用于构建布......
  • 【一句话】Redis的3中缓存策略
    首先一句话:旁路缓存模式策略:写->写DB,删缓存,读->读cache,没有则读DB,然后更新到缓存读写穿透策略:写->写缓存,然后由缓存系统写DB,读->读cache,没有则将DB写入cache,再读cache异......
  • 继承Thread类创建多线程
    之前我们学习了多线程,今天来说Java程序中如何实现多线程,Java提供了两种多线程实现方法,今天就来说说第一种继承Thread类创建多线程,另一种方法请看下篇!在学习多线程之前,先来看......
  • JUC源码学习笔记5——1.5w字和你一起刨析线程池ThreadPoolExecutor源码,全网最细doge
    源码基于JDK8文章1.5w字,非常硬核系列文章目录和关于我一丶从多鱼外卖开始话说,王多鱼给好友胖子钱让其投资,希望亏得血本无归。胖子开了一个外卖店卖国宴,主打高端,外卖......
  • 【springboot异常】 Exception in thread "main" java.lang.UnsupportedClassVersionE
    微信公众号:​​程序yuan​​关注可获得更多干货哦!问题或建议,请公众号留言; 在我们运行SpringBoot应用的时候会遇到这样一个问题。Exceptioninthread"main"java.lang.U......