停止一个线程通常意味着在线程处理任务完成之前停掉正在做的操作,也就是放弃当前的操作。

原先java中提供了方法,使用 stop() 方法强行终止线程,但是不推荐使用这个方法,该方法已被弃用,因为stop会解除由线程获取的所有锁定

所以我们将换一种方式实现线程停止,使用标志位终止线程

使用标志位终止线程

简单的理解,run方法有时候回一直执行,怎么解决呢,定义一个布尔值,通过判断来决定是否执行,也可以说,通知机制

  • 实例
package thread;public class Demo {private static int i = 0;private static boolean flag = true;public static void main(String[] args) {new Thread(() -> {while (flag) {try {Thread.sleep(500);} catch (InterruptedException e) {e.printStackTrace();}System.out.println("执行第" + i++ + "次");}}).start();try {Thread.sleep(3000);} catch (InterruptedException e) {e.printStackTrace();}flag = false;  }}

java多线程-线程停止相关推荐

  1. java多线程-线程的停止【interrupt】

    java多线程-线程的停止 文章目录 java多线程-线程的停止 线程停止的原理 如何正确停止线程 在普通情况下停止线程 代码展示 在阻塞情况下停止线程 代码展示 线程在每次迭代后都阻塞 代码展示 停 ...

  2. Java 多线程线程安全(面试概念解答二)

    Java 多线程线程安全 什么是线程安全? 为什么有线程安全问题? 线程安全解决办法? 同步代码块 同步函数 静态同步函数 多线程死锁 多线程的三大特性 原子性 可见性 有序性 Java内存模型 Vo ...

  3. Java多线程——线程的优先级和生命周期

    Java多线程--线程的优先级和生命周期 摘要:本文主要介绍了线程的优先级以及线程有哪些生命周期. 部分内容来自以下博客: https://www.cnblogs.com/sunddenly/p/41 ...

  4. java多线程 线程安全_Java中的线程安全

    java多线程 线程安全 Thread Safety in Java is a very important topic. Java provides multi-threaded environme ...

  5. JAVA --- 多线程 -- 线程的创建

    JAVA - 多线程 – 线程的创建 线程的概念: 说起线程,先说程序和进程,多任务的概念. 程序(program):是指令和数据的有序集合,本身没有任何运行的含义,是一个静态的概念. 进程(proc ...

  6. Java多线程-线程的创建(Thread类的基本使用)

    文章目录 一. 线程和Thread类 1. 线程和Thread类 1.1 Thread类的构造方法 1.2 启用线程的相关方法 2. 创建第一个Java多线程程序 3. 使用Runnable对象创建线 ...

  7. Java多线程-线程的同步与锁

    一.同步问题提出 线程的同步是为了防止多个线程访问一个数据对象时,对数据造成的破坏. 例如:两个线程ThreadA.ThreadB都操作同一个对象Foo对象,并修改Foo对象上的数据. package ...

  8. Java多线程 ——线程基础和锁锁锁

    Java多线程(一) 一.线程的定义 二.Synchronize线程同步 三.偏向锁.自旋锁.重量级锁 四.volatile关键字 4.1.普通变量运算的物理意义 4.2.有无解决的方案 4.3.vo ...

  9. 【Java系列】(四)Java多线程---线程安全

    前言: 记得大一刚学Java的时候,老师带着我们做了一个局域网聊天室,用到了AWT.Socket.多线程.I/O,编写的客户端和服务器,当时做出来很兴奋,回学校给同学们演示,感觉自己好NB,呵呵,扯远 ...

  10. Java多线程——线程池的饥饿现象

    概述 定长线程池的使用过程中会存在饥饿现象,也就是当多线程情况下,当池中所有线程都被占用后,被占用的线程又需要空闲线程去进行下一步的操作,此时又获取不到池中空闲的线程,此时就出现了饥饿现象. 示例 p ...

最新文章

  1. 数据结构源码笔记(C语言):冒泡排序
  2. HD2500显卡驱动linux,Intel发布HD Graphics 2500/4000显卡Win10驱动下载
  3. java for 迭代器_Java基础-迭代器Iterator与语法糖for-each
  4. python之pop
  5. Google Colab 免费GPU 教程
  6. NSURLConnection-网络访问(同步异步)
  7. Head First Java Stick 01
  8. 把CS文件编译成dll文件
  9. IDEA快捷键的使用
  10. xdg在Linux中的用法,Linux – XDG (X Desktop Group)
  11. 使用Pyecharts进行全国水质TDS地图可视化全过程9:构建字典,批量生成所有省份地图
  12. 睦星科技Kolmostar获1000万美元 A 轮融资,将推出更多元的GNSS定位解决方案
  13. 三星手机动态修改分辨率信息
  14. 测试分析——熟悉被测软件
  15. 设计模式之--中介者模式
  16. matlab版本转换
  17. webshell多种方法免杀
  18. 运维实战:DNS服务篇
  19. SpringMVC框架 |自定义类型转换器与日期格式化
  20. Conflux 树图区块链 “数字藏品 合约标准和编写规范

热门文章

  1. ssh登录忽略known_hosts列表
  2. Dynamics CRM2013 业务规则的新建、激活与删除
  3. UISearchBar背景透明,去掉背景,自定义背景
  4. 突然想起来几年前我写的 !
  5. my first d3d application 哈哈哈。
  6. 小波变换和motion信号处理(三)
  7. java饼状图获取数据集_HighChars3D饼图(从后台获取数据)
  8. Servlet教程第5讲笔记
  9. 【转】Elasticsearch+Django搜索引擎(一)
  10. python实践统计学中的三大相关性系数,并绘制相关性分析的热力图