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

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

前言最近逛 CSDN 看到一篇文章,文章大意是说为什么在循环中不推荐使用 sleep 操作,原因在于线程挂起和唤醒会有很大的性能消耗,并推荐使用 Timer 及 ScheduledExecutorService...Demo { private static final boolean FLAG = true; public static void main(String[] args) { while...sleep 可能会导致忙等待 // 如 FLAG 变量状态未改变 那么线程可能一直循环,并不断进行线程挂起和唤醒原因是否正确主要原因和原文博主所说有很大的关系但不完全正确:我们都知道 Java 线程实际对应着操作系统中的一个线程...比如一些用户登录场景,当用户登录状态改变时,发送登录事件进行后续处理,比如登录通知等等等待和唤醒等待和唤醒机制一般适用于等待时间较长的场景,因为等待和唤醒是一个性能消耗比较大的操作;在等待时间不是很长的场景可以使用轮询机制...在 Java AQS 等待获取锁和线程池任务为空等待新任务时,会使用等待和唤醒操作轮询机制 和 等待和唤醒 一般会结合使用,避免线程频繁的挂起和唤醒。

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

    详解分支和循环结构(剖析if语句,switch语句,while循环,for循环,do-while循环)

    case和default的顺序问题 在 switch语句中 case ⼦句和 default⼦句有要求顺序吗?...其实,在 switch 语句中 case语句和default语句是没有顺序要求的,只要你的顺序是满足实际需求的就可以。 不过我们通常是把 default ⼦句放在最后处理的。...注: • switch 后的 expression 必须是整型表达式 • case 后的值,必须是整形常量表达式 为什么输入4会出现图中的错误呢?...循环1和2两个步骤,在n变成0之前,就能到所有的位。...=0,则继续循环,执行循环语句;判断表达式的结果==0,则循环结束。 所以在 do while 语句中循环体是⾄少执行一次的,这是 do while循环比较特殊的地⽅。

    23810

    c语言的三种语句

    else问题 2.switch语句 二、循环语句 1.while语句 2.for语句 3.do-while循环 三、goto语句 四.猜数字游戏 前言: 梳理一下三大结构且做一个实践 C语⾔是结构化的程且序设计语...,循环就终⽌了 printf("%d ", i); i = i+1; } return 0; } ​为什么会出现这种结构?...遇见continue是到判断了 for遇见continue是到调整部分了 3.do-while循环 在循环语句中 do while 语句的使⽤最少,它的语法如下: do 语句; while...、 示例图 ​ do while 语句中循环体是⾄少执⾏⼀次的,这是 do while 循环⽐较特殊的地⽅ 示例 在屏幕上打印1~10的值 #include ...); return 0; } do.while 语句中的 break 和 continue 的作⽤和 while 循环中⼏乎⼀模⼀样 ,这里就不赘述了 三、goto语句

    28410

    C语言:分支与循环

    \n"); break; } return 0; } 2.4 switch语句中的case和default的顺序问题 在 switch 语句中 case 语句和 default 语句是没有顺序要求的...三、while循环 C语⾔提供了3种循环语句, while 就是其中⼀种。 while 语句的语法结构和 if 语句⾮常相似。...五、do-while循环 在循环语句中 do while 语句的使⽤最少 do 语句;//想包含更多的语句,可以加上⼤括号 while(表达式); while 和 for 这两种循环都是先判断,...所以在 do while 语句中循环体是⾄少执行⼀次的,这是 do while 循环比较特殊的地⽅。 练习:输⼊⼀个正整数,计算这个整数是⼏位数?...do.while 语句中的 break 和 continue 的作⽤和 while 循环中⼏乎⼀模⼀样,所以不做讲解。

    17710

    C语言分支和循环语句

    原因是 switch 语句也是分⽀效果的,只有在 switch 语句中使⽤ break 才能在跳出 switch 语 句,如果某⼀个 case 语句的后边没有 break 语句,代码会继续玩下执⾏,有可能执...4.3 switch语句中的default 在 switch 语句中 case 语句和 default 语句是没有顺序要求的,只要你的顺序是满⾜实 际需求的就可以。...; }while(i<=10); return 0; } ⼀般 do while 使⽤在循环体⾄少被执⾏⼀次的场景下,所以较少⼀些。...continue 的作⽤是跳过本次循环 continue 后边的代码,在 for 循环和 while 循环中有所差异的。...在这里,可以对比一下while和for循环中continue的区别  8.3 do while循环中的break和continue 作用几乎和while循环中的一模一样。

    14710

    【C语言】分支循环总结

    .== 和 =的区别 3.悬空else 敲代码建议 switch语句 switch语句中的 break default子句  循环语句 while循环​​​​​​​ while语句中的break和continue...for循环 break和continue在for循环中 使用for循环的建议 do...while()循环 do while循环中的break和continue  goto语句 关机程序——goto语句...while的基本结构 while(表达式) 循环语句;  我们来练习一下,打印一下1到10:  接下去,我们在来说说while中的break和continue while语句中的break和continue...进行下一次循环的入口判断 for循环 我们已经知道了 while 循环,但是我们为什么还要一个 for 循环呢?...break和continue在for循环中 我们发现在 for 循环中也可以出现 break 和 continue ,他们的意义和在 while 循环中是一样的。

    99530

    C语言——分支与循环

    6.switch 语句也是分⽀效果的,只有在 switch 语句中使⽤ break 才能跳出 switch 语 句,如果某⼀个 case 语句的后边没有 break 语句,代码会继续往下执⾏,有可能执⾏...表达式3 :⽤于循环变量的 调整 表达式1和表达式3可以是一个简单的表达式,也可以是一个逗号表达式(包含多个简单表达式) 事实上,for 和 while 在实现循环的过程中都有初始化...所以在 do while 语句中 循环体是⾄少执行⼀次。...使用 在使用上,break在三种循环语句差别不大。 这里需要特别注意的是 continue在 for 循环和 while 循环中是有所差异的。...,我们需要注意的是continue只能在循环中使用,而break可以在switch和循环语句中使用,但是break不能与if语句单独使用。

    7210

    关于C语言的分支与循环语句

    在 switch 语句中 case ⼦句和 default ⼦句有要求顺序吗? default 只能放在最后吗?...其实,在 switch 语句中 case 语句和 default 语句是没有顺序要求的,只要你的顺序是满⾜实 际需求的就可以。 不过我们通常是把 default ⼦句放在最后处理的。...(3).do...while循环 在循环语句中 do while 语句的使⽤最少,它的语法如下: do 语句; while(表达式); while 和 for 这两种循环都是先判断,条件如果满⾜就进⼊...所以在 do while 语句中循环体是⾄少执⾏⼀次的,这是 do while 循环⽐较特殊的地⽅。 同样的,这三种循环语句也可以嵌套使用。...• continue 的作⽤是跳过本次循环 continue 后边的代码,在 for 循环和 while 循环中有所 差异的。

    13210

    C语言循环与分支不会用?来看看!

    do { 循环体 }while(表达式) while 和 for 这两种循环都是先判断,条件如果满⾜就进⼊循环,执⾏循环语句,如果不满⾜就跳 出循环; ⽽ d o while 循环则是先直接进...2.5 break和continue语句 在循环执⾏的过程中,如果某些状况发⽣的时候,需要提前终⽌循环,这是⾮常常⻅的现象。...2.5.2 for循环中的break和continue for循环和while循环中的break是一样的,都是跳出循环,不管后面还有多少次循环。...2.5.3 do-while中的break和continue do-while中的情况几乎和while的情况一模一样,在次不做过多演示。...在C语⾔中,0为假,⾮0表⽰真,也就是表达式的结果如果是0,则语句不执⾏,表达式的结果如果是 不是0,则语句执⾏。

    5810

    关于Java异常Exception最常见的十大问题1 受检异常 VS 非受检异常2 异常管理的最佳实践3 为什么在try语句中定义的变量不能在catch和finally语句中使用?4 为什么Doubl

    1 受检异常 VS 非受检异常 简单的说,受检异常必须在方法中被显示的捕捉,或者在方法的throws语句中被抛出。...Paste_Image.png 2 异常管理的最佳实践 如果一个异常能够被正确的处理,那么他就该捕获,反之,则该被抛出 3 为什么在try语句中定义的变量不能在catch和finally语句中使用?...The code does not pass compilation 下面这段代码,string s定义在try语句块中,然后却在catch语句中使用了s,这段程序是无法通过编译的 try {...这就是为什么try语句中定义的变量不能在catch和finally语句中使用。...4 为什么Double.parseDouble(null)和Integer.parseInt(null) throw不同的异常?

    1.1K41

    【C语言】分支与循环

    while ( 表达式 )      语句 ; // 如果循环体想包含更多的语句,可以加上⼤括号 ⾸先上来就是执行判断表达式,表达式的值为0,循环直接结束;表达式的值不为0,则执行循环语...在 do while 循环中先执行图上的“语句”,执行完语句,在去执行“判断表达式”,判断表达式的 结果是!=0,则继续循环,执行循环语句;判断表达式的结果==0,则循环结束。...所以在 do while 语句中循环体是至少执行⼀次的,这是 do while 循环比较特殊的地方。...• continue 的作用是跳过 本次循环 continue 后边的代码,在 for 循环和 while 循环中有所差异的。 只是本次,不是永久!!!...7.goto语句 C语⾔提供了⼀种⾮常特别的语法,就是 goto 语句和跳转标号, goto 语句可以实现在同⼀个函数 内跳转到设置好的标号处。 for (...

    9810

    易犯的PHP小错误及相应分析

    更好地理解错误信息可以大大节省寻找并改正错误内容所花费的时间。因此在本文中,我们会介绍写PHP程序时常犯的错误,以及不同类型的PHP报错信息和含义。另外本文中所讲述的内容与所使用的PHP的版本无关。...要搞清楚编译器为什么会报告某一行上存在错误,首先必须明确编译器解析PHP代码的机制。...变量声明 如果在一条语句中声明一个变量,如下所示: $var = 'value'; 编译器首先会求出语句右半部分的值,恰恰正是语句的这一部分常常会引发错误。...而且代码中echo语 句的运行效率要略快于print语句。 2....,程序将跳过include语句,虽然会显示错误信息但是程序还是会继续执行。

    1.3K70

    C语言(3)----分支和循坏以及操作符

    前言 C语⾔是结构化的程序设计语⾔,这⾥的结构指的是顺序结构、选择结构、循环结构。...循环 7.while语句 C语⾔提供了3种循环语句, while 就是其中⼀种,接下来就介绍⼀下 while 语句。 while 语句的语法结构和 if 语句⾮常相似。...for 和 while 在实现循环的过程中都有初始化、判断、调整这三个部分,但是 for 循环的三个部 分⾮常集中,便于代码的维护,⽽如果代码较多的时候 while 循环的三个部分就⽐较分散,所以从形...9.do while循环 这是三个循环语句中用的最少的一个。...它的表达式是 do      语句; while(表达式) 值得注意的是,while和for两个语句都是先判断再循环,而do while是先执行一次在进行判断,这说明在这个语句中循环体至少执行一次。

    8210

    分支与循环(3)

    6. while循环 C语⾔提供了3种循环语句, while 就是其中⼀种,接下来就介绍⼀下 while 语句。while 语句的语法结构和 if 语句⾮常相似。...7.3 for循环的实践 练习:在屏幕上打印1~10的值  参考代码:   7.4 while循环和for循环的对⽐ for 和 while 在实现循环的过程中都有初始化、判断、调整这三个部分,但是 for...7.5 练习 练习1: 计算1~100之间3的倍数的数字之和 参考代码: 8. do-while 循环 8.1 语法形式 在循环语句中 do while 语句的使⽤最少,它的语法如下: do 语句; while...=0,则继续循环,执⾏循环语句;判断表达式的结果==0,则循环结束。 所以在 do while 语句中循环体是⾄少执⾏⼀次的,这是 do while 循环⽐较特殊的地⽅。...9.3 do while循环中的break和continue  do.while 语句中的 break 和 continue 的作⽤和 while 循环中⼏乎⼀模⼀样,⼤家下来可以⾃⾏测试并体会。

    9310

    我与C语言二周目邂逅vlog——3.分⽀和循环

    1. if语句 1.1 if C语⾔是结构化的程序设计语⾔,这⾥的结构指的是顺序结构、选择结构、循环结构,C语⾔是能够实 现这三种结构的,其实我们如果仔细分析,我们⽇常所⻅的事情都可以拆分为这三种结构或者这三种...我们可以使⽤ if 、 switch 实现分⽀结构,使⽤ for 、 while 、 do while 实现循环结构。...if 和 else 语句中默认都只控制⼀条语句 1.3 匹配问题(悬空else问题)!!!!!!...是和第⼆个 if 进⾏匹配的,这样后边的 if...else 语句是嵌套在第⼀个 if 语句中的,如果第⼀个 if 语句就不 成⽴,嵌套 if 和 else 就没机会执⾏了,最终啥都不打印。...• switch 后的 expression 必须是整型表达式 • case 后的值,必须是整形常量表达式 5.1 break 只有在 switch 语句中使⽤ break 才能在跳出 switch

    7010

    【C语言基础篇】结构控制(中)循环结构

    C语⾔是结构化的程序设计语⾔,这⾥的结构指的是顺序结构、选择结构、循环结构。也就是说在C语言所有的代码都是这三种结构。...while语句 while 语句的语法结构和 if 语句非常相似 ⾸先上来就是执行判断表达式,表达式的值为0(为假),循环直接结束;表达式的值不为0(为真),则执行循环语 句,语句执行完后再继续判断...do while语句 在循环语句中 do while 语句的使用最少,它的语法如下 do { 语句; } while(表达式); 注意 while 和 for 这两种循环都是先判断...=0,则继续循环,执行循环语句;判断表达式的结果==0,则循环结束。所以在 do while 语句中循环体是至少执行⼀次的,这是 do while 循环比较特殊的地⽅。...在学完这三个循环后,应明确它们的异同点: 用while和do…while循环时,循环变量的初始化的操作应在循环体之前,而for循环一般在语句1中进行的; while 循环和for循环都是先判断表达式,后执行循环体

    12610
    领券