`
endual
  • 浏览: 3567111 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

java interruped的使用方法

    博客分类:
  • java
 
阅读更多
1 interruped
java中当一个线程sleep时,调用其中断方法是无效的,因此在异常的处理中需要将线程interrupt(),否则线程依然是非interrupt状态。
下面的例子中,线程将进入死循环,不会退出,因为主线程调用了interrupt()方法时,线程s正在睡眠。
正确的方法应该在异常中调用Thread.currentThread().interrupt();
public static void main(String[] args) throws InterruptedException
    {
        Thread s =  new Thread(){
            public void run(){
                while(!interrupted()){
                    System.out.println("------");
                    try{
                        sleep(5000);
                    } catch (InterruptedException e) {
                        //Thread.currentThread().interrupt();
                        System.out.println("异常");
                    }
                    System.out.println(".......");
                }
            }
        };
        s.start();
       
        Thread.currentThread().sleep(2000);
        s.interrupt();
    }
2.synchronized与wait区别
synchronized不会让线程进入对象的等待队列,线程不会停止,而wait表示将线程放入到对象的等待队列中,只有当其他的线程调用了notify,notifyAll时,jvm才会调度该线程
3.静态synchronized
synchronized表示同步的对象为当前对象,静态synchronized表示锁定的是class对象
4.stop方法用来停止线程不安全,当一个线程被stop时,它会立即释放它锁定的所有对象的锁,这会使得各个对象处于不一致的状态中,要停止一个线程,使用一个变量来标示
 

 

分享到:
评论

相关推荐

    java 泛型方法使用示例

    下面我们将深入探讨Java泛型方法的概念、语法以及使用示例。 **一、泛型方法概念** 泛型方法是一种具有类型参数的方法,这些类型参数可以在方法声明时指定,并在方法体内部使用。与类的泛型类似,它们提供了编译时...

    使用Java自动化方法模拟Android人工点击、触屏事件(含platform-tools工具)

    本篇文章将深入探讨如何使用Java自动化方法模拟Android的人工点击和触屏事件,同时涉及`platform-tools`工具包中的adb(Android Debug Bridge)。 首先,`platform-tools`是Android SDK的一部分,包含了adb工具,这...

    java中main方法发送httpPost请求

    这可以通过`java.net.URL`类的`openConnection()`方法实现: ```java URL url = new URL("http://target.com/api"); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); ``` 2. **...

    java动态识别文件编码EncodingDetect.java附使用方法很简单

    当我们循环遍历文件进行操作的时候可能遇到各种各样的文件编码格式,如果不知道当前循环的文件格式的话,将会遇到各种各样的问题,...使用java动态识别文件编码EncodingDetect.java这个工具类以后就变得异常简单了!

    java解析wsdl文档获取方法与参数

    本文将深入探讨如何使用Java来解析WSDL文档,提取其中的方法和参数。 首先,理解WSDL的基本结构是必要的。一个WSDL文件通常包含服务定义、消息定义、端点(port)定义以及绑定定义。服务定义指明了服务的名称,消息...

    java swing项目皮肤包+使用方法说明

    - 使用`UIManager.setLookAndFeel()`方法将加载的LookAndFeel应用到整个应用程序。 ```java try { UIManager.setLookAndFeel(lookAndFeel); } catch (UnsupportedLookAndFeelException ulafe) { ulafe....

    C#调用java类、jar包方法

    在跨平台开发中,有时需要将不同编程语言的组件整合在一起,例如在C#应用中调用Java类或使用Java的jar包。本篇将详细阐述如何在C#环境中实现对Java类的调用以及使用Java的jar包。 首先,要理解C#与Java之间的互操作...

    把wsdl文件转换成java类 使用wsdl2Java工具

    5. **集成到项目中**: 将生成的Java类导入你的Java项目,然后就可以像调用普通Java方法一样调用Web服务。 6. **调用Web服务**: 使用客户端代理类,实例化并调用对应的方法,传入参数,即可完成对Web服务的调用。 7...

    javatwain 使用扫描仪

    本程序实现了在web页面上,用JAVA的方式,调用扫描仪进行扫描,并上传至远程服务器。并且可以设置扫描范围、扫描精度、以及扫描UI显示等! 该版本在uploadpath参数设置为“http://localhost/xxx.action”,即使用...

    java中set、list和map的使用方法实例

    // java中对象容器主要有Set,List和Map三个接口类。 // 迭代器(Iterator)模式,又叫做游标(Cursor)模式。 // GOF给出的定义为:提供一种方法访问一个容器...另包含一篇网文:在java中使用TreeMap进行中文排序

    java反射,获取所有属性、方法以及List集合类

    本篇文章将深入探讨如何使用Java反射来获取一个类的所有属性、方法,并处理List集合类。 首先,让我们了解Java反射的基础概念。在Java中,`java.lang.Class`类代表运行时的类信息。我们可以使用`Class.forName()`...

    JAVA_API1.6文档(中文)

    java.awt.im.spi 提供启用可以与 Java 运行时环境一起使用的输入方法开发的接口。 java.awt.image 提供创建和修改图像的各种类。 java.awt.image.renderable 提供用于生成与呈现无关的图像的类和接口。 java.awt....

    java 去掉重复字符 三个方法

    这个方法利用了Java 8的特性,将字符串转换为整数流(每个字符的ASCII值),然后使用`distinct()`过滤重复,再通过`mapToObj()`将每个整数转换回字符,并最终使用`toArray()`生成新的字符串。 总结来说,去除Java...

    java源码包---java 源码 大量 实例

     Java编写的HTML浏览器源代码,一个很简单甚至不算是浏览器的HTML浏览器,使用方法:  可直接输入文件名或网络地址,但必需事先连入网络。 Java编写的山寨QQ,多人聊天+用户在线 21个目标文件 摘要:JAVA源码,...

    java调用C#封装的dll方法

    另一种常见的方法是使用Java-COM Bridge (Jacob),它允许Java直接调用COM对象而无需经过中间层。 **步骤详解:** **1. 创建C# COM组件:** - 此步骤与使用JNA的方法相同。 **2. Java调用C# DLL:** - **添加...

    JAVA文档 详细介绍JAVA中的接口使用方法

    JAVA文档 详细介绍JAVA中的接口使用方法 有助于初学者的使用

    迅雷下载接口java实现

    5. **加载DLL**:在Java代码中,使用`System.loadLibrary`方法加载刚刚编译好的DLL。 6. **调用接口**:现在,Java代码可以调用C++实现的函数,启动迅雷下载任务了。 在实际开发过程中,还需要注意以下几点: - **...

    Java2Pas Java代码转pas代码

    Java是一种广泛使用的高级编程语言,以其平台无关性和强大的类库支持闻名。它的语法受到C++的影响,但引入了垃圾回收机制,简化了内存管理。另一方面,Pascal则是一种较老的语言,源于1970年代,因其清晰的语法结构...

    [测试通过]JAVA调用第三方DLL的简单方法:JNA及DEMO

    DEMO提供了两个Java文件:"mathfundll.java"和"testmathfundll.java",它们展示了如何使用JNA来调用DLL中的方法。 1. **mathfundll.java**:这个文件定义了Java接口,它映射了DLL中的函数。例如,可能有一个名为`...

Global site tag (gtag.js) - Google Analytics