isInterrupted()方法和Thread.interrupted()方法判断中断状态的区别

①isInterrupted()方法:

  在Thread对象上调用isInterrupted()方法可以检查任何线程的中断状态,但是:线程一旦被中断,isInterrupted()方法便会返回true,而一旦sleep()方法抛出异常,它将恢复中断标志,isInterrupted()方法在此时就会返回false。

如下代码所示:

②Thread.interrupted()方法: 

  Thread.interrupted()方法是静态方法,不能再特定的线程中使用,只能报告调用它的线程的中断状态;

如果当前线程被中断,它会返回true,但是它会自动的重置中断状态为false;所以,第二次调用的时候,总是会返回false,除非中断了线程。

如下代码所示:

时间: 2024-10-05 03:19:30

isInterrupted()方法和Thread.interrupted()方法判断中断状态的区别的相关文章

java——多线程——单例模式的static方法和非static方法是否是线程安全的?

单例模式的static方法和非static方法是否是线程安全的? 答案是:单例模式的static方法和非static方法是否是线程安全的,与单例模式无关.也就说,如果static方法或者非static方法不是线程安全的,那么不会因为这个类使用了单例模式,而变的安全. 闲话休说,看代码: import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class TestSingl

synchronized 修饰在 static方法和非static方法的区别

Java中synchronized用在静态方法和非静态方法上面的区别 在Java中,synchronized是用来表示同步的,我们可以synchronized来修饰一个方法.也可以synchronized来修饰方法里面的一个语句块.那么,在static方法和非static方法前面加synchronized到底有什么不同呢?大家都知道,static的方法属于类方法,它属于这个Class(注意:这里的Class不是指Class的某个具体对象),那么static获取到的锁,是属于类的锁.而非stati

Html.Partial方法和Html.RenderPartial方法

分布视图 PartialView 一般是功能相对独立的,类似用户控件的视图代码片段,可以被多个视图引用,引用方式如下. 1,Html.Partial方法和Html.RenderPartial方法 静态类System.Web.Mvc.Html.PartialExtensions,利用扩展方法,扩展了System.Web.Mvc.HtmlHelper,因此有了Html.Partial方法,方法返回值为MvcHtmlString 静态类System.Web.Mvc.Html.RenderPartial

Server.Transfer方法,Server.Execute方法和Response.Redirect方法有什么异同

(1)Server.Transfer方法: Server.Transfer("m2.aspx");//页面转向(服务器上执行). 服务器停止解析本页,保存此页转向前的数据后,再使页面转向到m2.aspx, 并将转向前数据加上m2.aspx页结果返回给浏览器,注意的是浏览器的地址没发生变化还是m1.aspx, (2)Server.Execute方法: Server.Execute("m2.aspx"); 服务器保存此页转向前的数据后,使页面转向到m2.aspx执行, 

jQuery hover()方法和jQuery toggle()方法用法示例

jQuery hover()方法和jQuery toggle()方法是两个合成事件,类似ready()方法,都属于jQuery自定义的方法.下面来讲解这两个方法的属性和如何使用. 一.hover()方法:语法结构为: hover(enter,leave).用于模拟光标悬停事件.当光标移动到目标元素上时,会触发指定第1个函数(enter);当移出这个元素时,会触发第2个函数(leave). 下面是一段示例代码: $(function(){ $("#panel h5.head").hove

getElementByName()方法和getter属性,及与getElementById()的区别

可以使用document.getElementByName()方法根据元素的name属性来获得元素.定义name属性的元素包括button.fieldset.input.keygen.output.select.textarea.form.iframe.object.map.meta.param. getElementByName()获取的是具有相同name属性及值的集合,返回值类型是NodeList.由于ID通常具有唯一性,所以getElementById()通常获得的是对元素对象的引用,而且

static方法和非static方法的区别

●生命周期(Lifecycle):静态方法(Static Method)与静态成员变量一样,属于类本身,在类装载的时候被装载到内存(Memory),不自动进行销毁,会一直存在于内存中,直到JVM关闭.非静态方法(Non-Static Method)又叫实例化方法,属于实例对象,实例化后才会分配内存,必须通过类的实例来引用.不会常驻内存,当实例对象被JVM 回收之后,也跟着消失. ● 在内存中存储位置静态方法和静态变量创建后始终使用同一块内存,是连续的.非静态方法会存在于内存的多个地方,是离散的.

【Java学习笔记】static方法和非static方法的区别

static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法.被static修饰的成员变量和成员方法独立于该类的任何对象.也就是说,它不依赖类特定的实例,被类的所有实例共享.静态方法可以直接通过类名调用,任何的实例也都可以调用.因此静态方法中不能用this和super关键字,不能直接访问所属类的实例变量和实例方法(就是不带static的成员变量和成员成员方法),只能访问所属类的静态成员变量和成员方法. 因此以下代码中,func_static方法只能访问num2成员,而func方法可以同

length属性、length()方法和size()的方法的区别

JAVA 1. length属性是针对Java中的数组来说的,要求数组的长度可以用其length属性: 2.length()方法是针对字符串来说的,要求一个字符串的长度就要用到它的length()方法: 3. java中的size()方法是针对泛型集合说的,如果想看这个泛型有多少个元素,就调用此方法来查看 public static void main(String[] args) { String[] list = {"bo", "ke", "yuan&