首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Java 中为什么不推荐在 while 循环中使用 sleep()

前言最近逛 CSDN 看到一篇文章,文章大意是说为什么在循环中不推荐使用 sleep 操作,原因在于线程挂起和唤醒会有很大的性能消耗,并推荐使用 Timer 及 ScheduledExecutorService...Demo { private static final boolean FLAG = true; public static void main(String[] args) { while...// do something }}上面的代码你可能会得到下面的警告:Call to ‘Thread.sleep()’ in a loop, probably busy-waiting// 循环中调用...sleep 可能会导致忙等待 // 如 FLAG 变量状态未改变 那么线程可能一直循环,并不断进行线程挂起和唤醒原因是否正确主要原因和原文博主所说有很大的关系但不完全正确:我们都知道 Java 线程实际对应着操作系统中的一个线程...在我的博客上,你将找到关于Java核心概念、JVM 底层技术、常用框架如Spring和Mybatis 、MySQL等数据库管理、RabbitMQ、Rocketmq等消息中间件、性能优化等内容的深入文章。

2.3K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    多线程:为什么在while循环中加入System.out.println,线程可以停止

    如下就能停止线程的运行: public class StopThread { private static boolean stopRequested; public static void...最开始的代码,一直处于试了循环中,CPU 处于一直被饱受占用的时候,这个时候 CPU 没有时间,JVM 也不能强制要求 CPU 分点时间去取最新的变量值。...这个时候CPU就有可能有时间去保证内存的可见性,于是while循环可以被终止。...其实,也可以在 while 循环里面加上 sleep ,让 run 方法放弃 cpu ,但是不放弃锁,这个时候由于 CPU 有空闲的时候就去按照 JVM 的要求去保证内存的可见性。如下所示。...run 方法里面休息了 3 秒,cpu 有充足的空闲时间去取变量的最新值,所以循环执行一次就停止了。

    1.7K50

    【Python百日精通】Python 循环的基础与应用

    基本语法如下: while 条件: 循环体 示例:Hello的循环 假设你想要重复输出一条消息,比如道歉100次,可以用 while 循环来实现: i = 0 while i 何在循环中处理累加逻辑。 3.2 计算1到100的偶数累加和 类似地,我们可以使用 while 循环来计算1到100的偶数累加和。偶数是指能够被2整除的数。...这个过程展示了如何在循环中处理条件逻辑。 四、for 循环的应用 4.1 遍历列表 for 循环常用于遍历列表中的元素。你可以对每个元素执行各种操作,比如计算、过滤等。...这个过程展示了如何在循环中处理数据并生成新的列表。 4.2 遍历字符串 for 循环也可以用来遍历字符串中的每个字符。 示例:统计字符串中每个字符的出现次数。...这个过程展示了如何在循环中处理字符数据并生成统计信息。 五、小结 本篇探讨了 while 循环和 for 循环的基本用法及其应用场景。

    24210

    如何在 JS 循环中正确使用 async 与 await

    当你尝试在循环中使用await时,事情就会变得复杂一些。 在本文中,分享一些在如果循环中使用await值得注意的问题。 准备一个例子 对于这篇文章,假设你想从水果篮中获取水果的数量。...在 for 循环中使用 await 首先定义一个存放水果的数组: const fruitsToGet = [“apple”, “grape”, “pear”]; 循环遍历这个数组: const forLoop...这种行为适用于大多数循环(比如while和for-of循环)… 但是它不能处理需要回调的循环,如forEach、map、filter和reduce。...在 forEach 循环中使用 await 首先,使用 forEach 对数组进行遍历。...在 reduce 循环中使用 await 如果想要计算 fruitBastet中的水果总数。 通常,你可以使用reduce循环遍历数组并将数字相加。

    5.1K30

    C语言中循环语句总结

    while循坏:  for循环:  while和for循环的对比: 区别:for 和 while 在实现循环的过程中都有初始化、判断、调整这三个部分,但是 for 循环的三个部 分⾮常集中,便于代码的维护...,⽽如果代码较多的时候 while 循环的三个部分就⽐较分散,所以从形式上 for 循环要更优⼀些。...这是因为 do-while 循环先执行循环体,然后再判断循环条件。与之相反的是 while 循环,它会先判断循环条件,然后再执行循环体。...: continue:跳过本次循.环中 continue 后的代码,直接去到循环的调整部分。...: 对比for循环和while循环中continue对代码的运行影响: 分析代码可以知道它们修改条件的位置不同 对于while循环的修改条件在continue后面所以当i=5时,他没法继续修改,而是陷入

    1.3K10

    MySQL数据库,详解流程控制语句(四)

    repeat循环 语法 [标签:]repeat 循环体; until 结束循环的条件 end repeat [标签]; repeat循环类似于java中的do...while循环,不管如何,循环都会先执...这块和while不 同,while是先判断条件是否成⽴再执⾏循环体。 示例1:⽆循环控制语句 根据传⼊的参数v_count向test1表插⼊指定数量的数据。...--+ | a | +---+ | 1 | | 2 | | 3 | | 4 | | 5 | +---+ 5 rows in set (0.00 sec) repeat中iterate和leave⽤法和while...⽤,while类似于java中的while循环,repeat类似于java中的do while 循环,loop类似于java中的死循环,都⽤于begin end中 6....循环中体中的控制依靠leave和iterate,leave类似于java中的break可以退出循 环,iterate类似于java中的continue可以结束本次循环

    2.8K10

    【C语言基础篇】结构控制(下)转向语句break、continue、goto、return

    ,在while循环、for循环和do...while循环中的使用方法和效果相同。...语句后边的部分不再执行,直接进入下一次循 下面依然以打印1-10的数字为例,分别展示continue在三种循环中的使用和效果 1. continue在 while 循环中 #include while循环中使用continue一样进入死循环) 打印结果为1 2 3 4 6 7 8 9 10 3. continue在 do...while 循环中 #include<stdio.h...: 在while循环和do...while循环中,如果continue刚好跳过了循环变量调整部分,将会导致死循环 而在for循环中,由于循环变量调整部分是单独拿出来的,所以使用continue不会导致死循环...根据某个判断条件结束本次循环,跳过本次循环后面的代码,直接进入下一次循环。不过要注意,continue用于while循环和do...while循环中,可能会跳过循环变量调整部分,导致死循环。

    65310

    Python数据容器:集合

    ,不支持while循坏# 定义集合my_set={"A","B","C","B","A"}# 定义一个空集合my_set_empty=set()print(f"my_set的内容为{my_set},类型是...(集合)# 统计集合长度set1={1,2,3}num=len(set1)print(f"集合内的元素数量为{num}")输出结果:集合内的元素数量为3三、集合的遍历集合不支持下标索引,所以不支持使用while...循环,但是支持使用for循环遍历。...for循坏遍历:# 集合的遍历# 集合不支持下标索引,所以不能用while循坏,可用for循坏set1={1,2,3}for element in set1: print(f"集合的元素有{element...3.在for循环中将列表的元素添加至集合4.最终得到元素去重后的集合对象,并打印输出my_list = ['新闻', '传播', '新闻', '传播', 'Hi', 'Python', 'Hi', 'Python

    1.1K31

    C语言基础——循环详解!

    while 循环 do...While循环 For循环 一、while循环 1、形式: while (表达式) // { //语句 } 表达式 每一次循环都要判定表达式的值 如果为真(表达式的值为1)...执行流程:(1)第一次进入while循环执行b前,先判断a。...继续执行循 环后面的代码 (3)执行完b 后,继续判断a是否满足条件。...由于while循环不会自行更改循环控 制变量的内容,所以while循环中为循环控制变量赋值的工作要由设计者自己来 做,完成后再回到步骤(2)重新判断是否继续执行循环。...裙里有大量学习资料,有大神解答交流问题,每晚都有免费的直播课程 二、Do.....while do { 语句; } while (表达式); 先执行一次循环里面的代码,然后对表带是求值,值为真接着循环

    4.7K00

    解析PHP跳出循环的方法以及continue、break、exit的区别介绍

    本篇文章是对PHP跳出循环的方法以及continue、break、exit的区别进行了详细的分析介绍,需要的朋友参考下 PHP中的循环结构大致有for循环,while循环,do{} while 循环以及...foreach循环几种,不管哪种循环中,在PHP中跳出循环大致有这么几种方式: 代码: 代码如下: <?...; } else if ($i==5) { // 但到这里$i=5就跳出循循环了 break; } else { echo $i ....> PHP的代码片段的作用是输出100以内,既不能被7整除又不能被3整除的那些自然数,循环中先用if条件语句判断那些能被整除的数,然后执行 continue;语句,就直接进入了下个循环。...> 上面这个例子中直接在从循环里结束了代码的运行,这样会导致后面的代码都不会被执行,如果是在一个php web 页面里面,甚至连exit后面的html代码都不会被输出。

    5.8K40

    c#使用自定义的比较器和循环遍历去重

    本文将详细介绍如何在C#中实现自定义比较器,以及如何使用循环遍历进行高效的数据操作。...循环遍历的基本概念循环遍历是操作集合的基本方法,它允许我们逐个处理集合中的每个元素。C#提供了多种循环结构,如for循环、foreach循环和while循环。...for循环for循环提供了更多的控制,允许我们在循环中使用索引访问集合中的元素。for循环通常用于数组或列表。while循环while循环是最通用的循环结构,它允许我们在循环中进行更复杂的逻辑判断。...,使用for循环找到最大的数,使用while循环计算总和。...这些示例展示了循环遍历在数据操作中的应用。性能考量在实现自定义比较器和循环遍历时,性能是一个需要考虑的因素。以下是一些性能建议:避免在循环中使用复杂的逻辑:在循环中使用复杂的逻辑可能会导致性能下降。

    3K00
    领券