2019独角兽企业重金招聘Python工程师标准>>>

在系统开发中常常设计到多线程的使用,正常需求下开启线程不需要中途停止,特殊需求下需要停止当前线程(我当前的网页爬取系统中用到,也可能是由于我业务和系统设计不太合理,后期再优化,先出产品线)。

根据Java中提供的知识,我们可以知道终止当前线程的方法有Thread.stop、Thread.suspend、Thread.resume和Runtime.runFinalizersOnExit,不过这些方法都已经废弃,因为这些都是不安全的。PS:如果有特殊需求,直接使用System.exit()也可以,哈哈~

上面的玩笑开完了,进入正题,在我看来现在结束当前线程的方法主要有3个:

1. 标志位的方式:return或者break终止当前线程

2. 抛出异常的方式:抛出RuntimeException异常

3. 改变当前条件的方式:如while(条件) 使得条件为false

本次项目中我使用了第二种,抛出异常时并详细说明了异常信息,并将异常信息记录在日志中。小弟才疏学浅,也只会这么多。如兄弟们有何好的方法,也欢迎拍砖~。

纯手打,仅此记录。

转载请指明出处:http://my.oschina.net/u/1991646/blog/683298

转载于:https://my.oschina.net/u/1991646/blog/683298

Java终止当前线程的方法相关推荐

  1. Java中暂停线程的方法sleep()

    JavaJavaJava中暂停线程的方法sleep()sleep()sleep() sleep()sleep()sleep()方法:使当前执行的线程在指定的毫秒数内休眠(暂时停止执行) 注:sleep ...

  2. java中实现线程的方法_Java中实现线程的方法

    Java中有几种方法可以实现一个线程?用什么关键字修饰同步方法?stop()和suspend()方法为何不推荐使用? 第一种:继承Thread类 new Thread(){}.start();这表示调 ...

  3. java thread resume_java 线程Thread方法之suspend()和resume() | 学步园

    官方解释如下:http://download.oracle.com/javase/6/docs/technotes/guides/concurrency/threadPrimitiveDeprecat ...

  4. java 销毁线程_线程 学习教程(一): Java中终止(销毁)线程的方法

    结束线程有以下三种方法: (1)设置退出标志,使线程正常退出,也就是当run()方法完成后线程终止 (2)使用interrupt()方法中断线程 (3)使用stop方法强行终止线程(不推荐使用,Thr ...

  5. java thread exit方法_实例分析Java终止线程和stop()方法

    Java终止线程实例和stop()方法源码阅读 了解线程 概念 线程 是程序中的执行线程.Java 虚拟机允许应用程序并发地运行多个执行线程. 线程特点 拥有状态,表示线程的状态,同一时刻中,JVM中 ...

  6. [改善Java代码]不使用stop方法停止线程

    线程启动完毕后,在运行可能需要终止,Java提供的终止方法只有一个stop,但是不建议使用此方法,因为它有以下三个问题: (1)stop方法是过时的 从Java编码规则来说,已经过时的方式不建议采用. ...

  7. java线程池_Java多线程并发:线程基本方法+线程池原理+阻塞队列原理技术分享...

    线程基本方法有哪些? 线程相关的基本方法有 wait,notify,notifyAll,sleep,join,yield 等. 线程等待(wait) 调用该方法的线程进入 WAITING 状态,只有等 ...

  8. 线程的状态转换、sleep()、wait()、yeild()、终止线程的方法、线程之间的协作(join()、wait() notify() notifyAll()、await() signal() )

    1.线程的状态转换 1.1 新建(New) 创建后尚未启动 1.2 可运行(Runnable) 可能正在运行,也可能正在等待 CPU 时间片. 包含了操作系统线程状态中的 Running 和 Read ...

  9. java中断线程_Java中断线程的方法

    使用interrupt()中断线程 当一个线程运行时,另一个线程可以调用对应的Thread对象的interrupt()方法来中断它,该方法只是在目标线程中设置一个标志,表示它已经被中断,并立即返回.这 ...

最新文章

  1. R语言关联规则挖掘数据集预览、分析、筛选:项目数的分布形态(分位数、密度图)、itemFrequency函数统计每一项目在所有事务中出现的次数、最常发生的项目、数据筛选(交易的集合项目大于1)
  2. python斑点检测
  3. TF-IDF与余弦相似性的应用(一):自动提取关键词
  4. mysql gtid配置_mysql 5.7 GTID主从配置
  5. 虚拟专题:知识图谱 | 其他文章
  6. 如何将Anaconda更新到想要的python版本(其实使用的是Anaconda中的切换不同环境的方法,不过步骤挺好)
  7. Feisty中totem-xine播放rm和rmvb没有声音
  8. 计算机网络网络层之数据报网络
  9. ElementUI简单分页
  10. 利用机器学习预测外汇汇率
  11. 极客时间 - Vim学习
  12. 360前端星计划学习笔记0410
  13. 链表和线性表的优缺点
  14. libc_database 库文件下载
  15. php发送指令给易语言,易语言发送信息代码数字指令编程整理
  16. org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.cy.pj.goods.dao
  17. JavaScript——leetcode算法入门876. 链表的中间结点【双指针专题】
  18. coder,你会设计交易系统吗(实干篇)?
  19. 万里长征第一步(非常重要) —— 如何愉快的阅读本小册
  20. 驾考宝典php源码,驾考宝典软件源码

热门文章

  1. nodejs操作sqlserver数据_pyspark操作MySQL、SQLServer数据库进行数据处理操作
  2. android 点击事件消费,Android View事件分发和消费源码简单理解
  3. 迪杰斯特拉算法c++_《算法图解》学习记录7--迪杰斯特拉算法
  4. 田忌赛马贪心算法_田忌赛马 贪心算法
  5. 3-RACSignal 常用方法
  6. 【iOS官方文档翻译】iOS的蓝牙连接、数据接收及发送
  7. 从0到1思考与实现iOS-Widget
  8. iOS基础问答面试题连载-附答案
  9. shell命令之---Linux文件权限
  10. Bruck:一个Web界面布局原型设计框架\n