为什么这个java程序中Thread,sleep(1000)没反应

作者&投稿:邢祝 (若有异议请与网页底部的电邮联系)
JAVA中Thread.sleep(1000);提示有错误,但是加上try........catch就不报错了,什么原因,作用是什么?~

因为try...catch 的作用是测试代码中的错误。
当程序运行过程中发生错误时,就会“ 抛出异常',抛出异常比终止程序要灵活得多,这是因为可以提供一个“ 捕获” 异常的处理器 (handler) 对异常情况进行处理。
如果没有提供处理器,程序就会终止,并在控制台上打印出一条信息, 其中给出了异常的类型。可能在前面已经看到过一些异常报告, 例如, 偶然使用了 null 引用或者数组越界等。
异常有两种类型: 未检查异常和已检查异常。 对于已检查异常, 编译器将会检查是否提供了处理器。 然而,有很多常见的异常, 例如,访问 null 引用, 都属于未检查异常。
编译器不会査看是否为这些错误提供了处理器。毕竟,应该精心地编写代码来避免这些错误的发生, 而不要将精力花在编写异常处理器上。

扩展资料
java中异常的捕获及处理
三种类型的异常:
检查性异常:最具代表的检查性异常是用户错误或问题引起的异常,这是程序员无法预见的。例如要打开一个不存在文件时,一个异常就发生了,这些异常在编译时不能被简单地忽略。
运行时异常: 运行时异常是可能被程序员避免的异常。与检查性异常相反,运行时异常可以在编译时被忽略。
错误: 错误不是异常,而是脱离程序员控制的问题。错误在代码中通常被忽略。例如,当栈溢出时,一个错误就发生了,它们在编译也检查不到的。
异常的根接口Throwable,其下有2个子接口,Error和Exception。
Error:指的是JVM错误,这时的程序并没有执行,无法处理;Exception:指的是程序运行中产生的异常,用户可以使用处理格式处理。

你的问题,不是问sleep ,而是问 while循环和if条件判断,

第一种: 判断 hasWorkThread
a) 如果没有休眠的任务,就执行if里面的内容,break 跳出,后面的sleep不执行
b) 如果休眠的任务,就再休眠,那么循环依次后,再重复a,b,这是个死循环.


第二种:判断 hasWorkThread 如果没有休眠的任务,就让其休眠 ,然后再退出 如果有休眠的任务,直接跳到while结束位置,while不操作.

sleep在代码的末尾,仔细看其实是有反应的。
不知道你的本意是不是要把sleep放到for循环里面呀,每次输出后都停顿一下。
现在这样看不出来sleep有什么意义。

class Test4 implements Runnable{
public void run(){
for(int i=0;i<10;i++){
System.out.println(Thread.currentThread().getName()+" "+i);
Thread.sleep(1000);//1000毫秒=1秒 }
}
}


java是什么东西?
Java说白了就是一门语言,像我们平时学校里学的英语,或者其他外语一样,是和其他人交流的工具,让别人知道你要表达什么,只不过Java语言是面向计算机的,人与机器交流,让计算机懂得我们所要表达的,从而让计算机运行出我们想要的结果。java是什么东西 ...

java是什么?
Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。 Java具有简单性、面向对象、分布式、...

JAVA是什么意思
JAVA的意思是计算机的编程语言。Java通过面向对象的编程语言。它不仅吸收了C++语言的优点,而且摒弃了C++中难于理解的多继承和指针的概念。具有简单性、功能强大、分布式、健壮性、安全性、平台独立与可移植性、多线程及动态性的特点。Java语言作为静态面向对象的编程语言的代表,可以充分的实现面向对象的理论...

java到底是什么?
final类:又称“最终类”,它只能用来创建对象,而不能被继承,与抽象类刚好相反,而且抽象类与最终类不能同时修饰同一个类。包:Java中的包是相关类和接口的集合,创建包须使用关键字package。继承:Java作为面向对象编程语言,支持继承这基本概念。但Java只支持单根继承,java.lang.Object是所有其他类的...

JAVA是什么软件?主要是干什么用的?
Java是一种高级语言,就是用来编程的,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程 。Java具有简单性、面向对象、...

Java是什么?
Java是一种面向对象的语言,所谓的面向对象指的是Java编程中,所有的操作都是以对象进行操作的,这样在我们编程的时候,可以将某个功能当成一个类,可以给这类东西设置自己的属性。由于计算机高级语言种类很多(C\/C++、JAVA、Python、C#等等),不同的语言所侧重的领域不相同,Java所侧重的范围是互联网行业...

java是什么意思?
1995年5月,Sun公司正式发布Java。从此Java一路披荆斩棘,在经历20多年的发展之后依然长盛不衰,常年雄踞各大编程语言排行榜第一位,这也凸显了其在IT技术领域的绝对统治力。“学了Java,我能干什么?”●程序员,穿梭在各种软件开发之间;●架构师,参加大型项目的实现;●网站开发,把若干个页面组成...

java是做什么的啊
Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点 。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等 。当编辑并运行一个Java程序时,需要同时涉及到这四种方面。使用文字编辑软件或集成开发环境在Java源文件中定义不同的类 ,通过...

JAVA是什么啊?它可以用来做什么?
Java是目前主流的编程语言之一,如果学会Java,可以从事的岗位还是比较多的,这里简单列举一些。Java可以做的:1、Java可以做网站 现在很多大型网站都用Jsp写的,JSP全名Java Server Pages。2、Java可以做Android Android是一种基于Linux的自由及开放源代码的操作系统,其源代码是Java。Java做安卓不单单是指...

java具体是什么意思?
Java简介 Java是由Sun Microsystems公司于1995年5月推出的Java程序设计语言(以下简称Java语言)和Java平台的总称。用Java实现的HotJava浏览器(支持Java applet)显示了Java的魅力:跨平台、动感的Web、Internet计算。从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器现在均支持Java applet。另一方面...

茄子河区19441707416: java 中为什么说,String是线程安全的 -
宓超角鲨: 如果你的代码所在的进程中有多个线程在同时运行,而这些线程可能会同时运行这段代码.如果每次运行结果和单线程运行的结果是一样的,而且其他的变量的值也和预期的是一样的,就是线程安全的. 或者说:一个类或者程序所提供的接口...

茄子河区19441707416: Java程序运行时总是出现Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0 -
宓超角鲨: 你运行时没有给main方法传参数,args[] 这个数组为空,所以下标越界. 你在运行时应该先配置运行参数,给 main方法传数字进去. 或者int t=12345;直接指定一个数字

茄子河区19441707416: java编程中出现“Exception in thread "main" java.lang.NoclassDefFoundError:Test”是怎么回事 -
宓超角鲨: 如果排除你写程序正确性的问题,那么我也觉得环境变量的设置的问题可能性最大.同意楼上 sadzipwhl 的,用Eclipse可以帮你解决很多问题.特别是在错误的提示上.你可以在http://www.eclipse.org/上下载英文最新版用.

茄子河区19441707416: 这个java程序能编译 为什么会出现Exception in thread "main" java.lang.NoclassDefFoundError:text.java -
宓超角鲨: 我的也跟你有同样的情况,很多人都是这样,网站评论一大堆都是认为环境配置有问题.我今天刚看了一中方法,你试下:C:\Documents and Settings\Administrator>javac D:\JAVA\Hello.java C:\Documents and Settings\Administrator>java -cp D:\JAVA Hello 最后这里java[空格]-cp[空格]路径[空格]Hello !!!!!! 上面是我看到的东东,只要编译能通过就行,解释的时候要按照他说的做.顺便提下方法的提出者:风之语故乡 自己去感谢他吧,嘿嘿

茄子河区19441707416: java请问为什么会抛出这种异常Exception in thread "main" java.lang.NoClassDefFoundError -
宓超角鲨: 环境变量设置如果正确的话,那就看一下编译时有没有错,编译时需要注意,格式是这样的:javac classname.java 注意,classname是你写的源程序,大写小一定要对,后边的".java"不能少,然后解译执行:java classname 这里没有后缀名,如果你加上的话,同样会给你报错,同样要注意大小写正确.另外你看一下你的源程序中是否用了public定义了一个类,如果有的话一定把这个类的名称设定为文件的名称,只是文件的名称比这个类名多了".java"后缀名而已.还有一种情况是,你在类中有调有其它类的函数或创建其它类的对像时出现了错误,视具体情况而论.

茄子河区19441707416: java程序出错 Exception in thread "main" java.lang.NoSuchMethodError: main -
宓超角鲨: 用MyEclipse运行这个程序可以执行,或者添加一个main函数.如下: import java.awt.*; import java.applet.*; import java.awt.event.*; public class E410 extends Applet { Button redbutton; public void init() { redbutton=new Button("我是一个红色的...

茄子河区19441707416: JAVA中这个Thread.currentThread是什么意思 -
宓超角鲨: 返回对当前正在执行的线程对象的引用.简单来说就是 Tthread类(线程类) 中的一个方法 Thread.currentThread() 是指获取当前运行的线程对象 例如: Thread.currentThread().getName() 就是获取当前运行的线程的名称 简单来说这就差不多了

茄子河区19441707416: java程序在eclipse时出错 -
宓超角鲨: 如果当前包中有相同的类名,就会包这个错误,这个错误不修改,死活不给你编译 而你在cmd下面编译这个java文件,那么编译后的class文件所在目录下面就只有一个Person和一个Studen文件,这当然不会冲突,如果你复制另外一个Person....

茄子河区19441707416: java中这个怎么解决? -
宓超角鲨: 你的循环逻辑有问题,报错是转型出错,应该是这一句Integer.parseInt(b),你的这个b应该还是March,没有转成3

茄子河区19441707416: 运行java程序是出现错误 Eception in thread "main" java.lang.NoClassDefFoundError:Displayer -
宓超角鲨: 这个程序是绝对没有问题的.一个.java文件只要没有给出public定义的类,文件名就可以任意取.可能是你的环境变量问题.你查看一下你的系统环境变量是否正确,还有你的用户变量里面有没有定义path或classpath,如果有删除掉.这会和系统变量里面的冲突.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网