本文实例讲述了Java中断一个线程操作。分享给大家供大家参考,具体如下:

一 点睛

中断一个线程,意味着该线程在完成任务之前,停止它正在进行的一切当前的操作。

有三个比较常用的函数:

interrupt():一个正在运行的A线程,可以调用B线程对应的interrupt方法来中断线程B。这个方法的核心功能是,将线程B的中断标识位属性设置为true。

isInterrupted():通过该方法判断某个线程是否处于中断状态。

interrupted():这是一个静态方法,用来获取当前线程的中断状态,并清除中断状态。获取的是清除之前的值,也就是说连续两次调用此方法,第二次一定会返回false。

二 代码

public class SleepInterrupt implements Runnable

{

public void run()

{

try

{

System.out.println( "在run()方法中 ——这个线程休眠10秒" );

Thread.sleep( 10000 );

System.out.println( "在run()方法中 —— 继续运行" );

}

catch( InterruptedException x )

{

System.out.println( "在run()方法中 - 中断线程" );

return;

}

System.out.println( "在run()方法中 - 休眠之后继续完成" );

System.out.println( "在run()方法中 - 正常退出" );

}

public static void main( String[] args )

{

SleepInterrupt si = new SleepInterrupt();

Thread newThd = new Thread( si );

newThd.start();

// 在此休眠是为确保线程能运行一会

try

{

System.out.println( "在main()方法中——休眠2秒!" );

Thread.sleep( 2000 );

}

catch( InterruptedException e )

{

e.printStackTrace();

}

System.out.println( "在main()方法中——中断newThd 线程" );

newThd .interrupt();

System.out.println( "在main()方法中 ——退出" );

}

}

三 运行

在main()方法中——休眠2秒!

在run()方法中 ——这个线程休眠10秒

在main()方法中——中断newThd 线程

在run()方法中 - 中断线程

在main()方法中 ——退出

四 说明

interrupt()方法并不会使正在执行的线程停止执行,它只对wait、join、sleep等方法或由于I/O操作等原因受阻的线程产生影响,使其退出暂停执行的状态。

它对正在运行的线程不起作用。

希望本文所述对大家java程序设计有所帮助。

java怎样中断函数_Java中断一个线程操作示例相关推荐

  1. java 用户线程如何修改界面内容_java 加入一个线程、创建有响应的用户界面 。 示例代码...

    javajava 加入一个线程.创建有响应的用户界面 . 示例代码 来自thinking in java 4 21章 部分代码 目录21.2.11 package org.rui.thread.con ...

  2. java多线池_java多线程之线程池

    1.new Thread的弊端 执行一个异步任务你还只是如下new Thread吗? new Thread(new Runnable() { @Override public void run() { ...

  3. java结束全部操作代码_Java基本的线程操作(附代码)

    啦啦啦啦,从头整理一遍java并发的内容.开始是基本的线程操作 线程状态切换: 新建线程: @Testpublic voidnewTread(){ Thread t1= new Thread(newR ...

  4. C语言中断服务程序指令,单片机C语言函数之中断函数(中断服务程序)

    在开始写中断函数之前,我们来一起回顾一下,单片机的中断系统. 中断的意思(学习过微机原理与接口技术的同学,没学过单片机,也应该知道),我们在这里就不讲了,首先来回忆下中断系统涉及到哪些问题. (1)中 ...

  5. 用java实现combin函数_Java并发工具类CompletableFuture教程与示例

    Java 8带来了大量的新功能和增强功能,例如Lambda表达式,Streams,CompletableFutures等.在本文中,我将通过简单的示例向您详细说明CompletableFuture及其 ...

  6. java开根号函数_Java中真的只有值传递么?

    原创: ITwalking 转载于公众号[ 编程大道] (本文非引战或diss,只是说出自己的理解,欢迎摆正心态观看或探讨) 回顾值传递和引用传递 关于Java是值传递还是引用传递,网上有不一样的说法 ...

  7. java虚成员函数_Java常见知识点汇总(④)——虚函数、抽象函数、抽象类、接口...

    一. Java虚函数 虚函数的存在是为了多态. 它虚就虚在所谓"推迟联编"或者"动态联编"上,一个类函数的调用并不是在编译时刻被确定的,而是在运行时刻被确定的. ...

  8. java多线程为啥一直用的一个线程_一个Java多线程的问题,颠覆了我多年的认知!...

    作者 | ithuangqing 来源 | 编码之外(ID:ithuangqing) 碰见个奇怪的多线程问题 小白们也不用怕,今天的文章你们都能看得懂,最近的学习中,碰到这样的一个问题: Java创建 ...

  9. java log日志函数_Java 中的 AWS Lambda 函数日志记录 - AWS Lambda

    AWS 文档中描述的 AWS 服务或功能可能因区域而异.要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门. 本文属于机器翻译版本.若本译文内容与英语原文存在差异,则一律以英文原文为准. Ja ...

最新文章

  1. Maven Eclipse Run as 命令
  2. 普通人学python有用吗-普通人学Python有什么用?
  3. ios 开发证书导出p12文件_开发者在上传企业签名的应用到后,做到如下几点
  4. Redis的启动、使用和停止
  5. 如此沙雕的代码注释,还是程序员会玩!
  6. 暴力技术(一)——BFS广(宽)度优先搜索
  7. Git笔记(32) 高级合并
  8. Clouder专项技能认证课程:网站建设——部署与发布
  9. 【TSP】基于matlab自重启伪遗传改良算法求解旅行商问题【含Matlab源码 1510期】
  10. Serial垃圾回收器总结
  11. ExtendSim高效 易学 易用 真正能用起来的系统仿真与优化工具
  12. 基于JavaSwing+mysql的酒店管理系统设计和实现
  13. 更改C盘用户目录下的文件夹名称
  14. 带小数的二进制转十进制(C代码)
  15. html语言div怎么使用,什么是div标签?HTML中div标签怎么使用?
  16. 单链表操作之合并两个单链表
  17. HTML基本知识点——图片标记
  18. JAVA1.7 NIO.2 入门,第 1 部分: 异步通道 API
  19. 复制限制编辑的Word文档中的内容
  20. 在 Linux 中使用.hushlogin文件关闭登录提示

热门文章

  1. 2018 n1ctf easy_hard_php 攻击流程图
  2. android studio gradle 打jar 包 (混淆+第三方库包)
  3. 线段树 HDU 3397
  4. ATL 工程下添加右击菜单
  5. 纵向合并gridview单元格的两种方法
  6. 闲聊Framebuffer
  7. got、plt表介绍
  8. Wpf之无法添加wpf窗体
  9. Vue之路由push
  10. Vue之安装vscode