我们一般使用多线程,都是while的死循环,想要结束线程,只需退出死循环即可

当线程中调用了sleep()方法或者wait()方法,当前的线程就会进入冻结状态,这个线程就结束不了

调用Thread对象的interrupt()方法,可以强制解冻,此时run()方法中需要捕获到InterruptException异常,然后进行处理,就可以关闭线程了

调用Thread对象的setDaemon()方法,参数:true

守护线程是后台线程,当前台线程全都结束以后,后台线程自动结束

class Ticket implements Runnable {private int nums = 100;@Overridepublic void run() {while (true) {synchronized (this) {if (nums > 0) {try {Thread.sleep(100);} catch (Exception e) {e.printStackTrace();}System.out.println(Thread.currentThread().getName() + "==="+ (nums--));}else{break;}}}}}public class TicketDemo {/*** @param args*/public static void main(String[] args) {Ticket ticket = new Ticket();Thread t1=new Thread(ticket);Thread t2=new Thread(ticket);t1.setDaemon(true);t2.setDaemon(true);t1.start();t2.start();//主线程执行1秒就结束,其他守护线程还没走完也会结束while(true){try {Thread.sleep(1000);break;} catch (Exception e) {e.printStackTrace();}}}}

[javaSE] 多线程(守护线程)相关推荐

  1. python多线程守护线程_Python守护程序线程

    python多线程守护线程 In this tutorial we will be learning about Python Daemon Thread. In our previous tutor ...

  2. python 并发编程 多线程 守护线程

    做完工作这个进程就应该被销毁 单线程情况: 一个进程 ,默认有一个主线程 ,这个主线程执行完代码后 ,就应该自动销毁.然后进程也销毁. 多线程情况: 主线程代表进程结束 一个进程可以开多个线程,默认开 ...

  3. 多线程----守护线程---Deamon

    public final void setDaemon(boolean on) 守护线程(后台线程) setDaemon(boolean on):将该线程标记为守护线程或者用户线程.当主线程结束,守 ...

  4. Java多线程—守护线程

    运行在程序后台的一个特殊的线程 当程序只剩下守护线程的时候,守护线程会自动退出 守护线程不能持有任何需要关闭的资源,例如打开文件等,因为虚拟机退出时,守护线程没有任何机会来关闭文件,这会导致数据丢失. ...

  5. java多线程 守护线程setDaemon

    守护线程 虚拟机分为用户线程和守护线程 虚拟机必须确保用户线程执行完毕 虚拟机不需要等待守护线程执行完毕 package state;public class TestDaemon {public s ...

  6. python 守护线程 join_Python多线程threading join和守护线程setDeamon原理详解

    同一进程下的多个线程共享内存数据,多个线程之间没有主次关系,相互之间可以操作:cpu执行的都是线程,默认程序会开一个主线程:进程是程序以及和程序相关资源的集合:某些场景下我们可以使用多线程来达到提高程 ...

  7. JAVE SE 学习day_09:sleep线程阻塞方法、守护线程、join协调线程同步方法、synchronized关键字解决多线程并发安全问题

    一.sleep线程阻塞方法 static void sleep(long ms) Thread提供的静态方法sleep可以让运行该方法的线程阻塞指定毫秒,超时后线程会自动回到RUNNABLE状态,等待 ...

  8. 详解java中Thread类,线程和进程的基本区别,多线程的好处,线程的五个生命周期,主线程和IDEA创建的Monitor Ctrl-Break守护线程;优雅地终止线程。死锁的产生

    线程:CPU调度的最小单位:线程共享堆内存和方法区,但各自享有栈空间.进程:CPU分配资源的最小单位. 为什么需要多线程:①避免其中一个模块阻塞造成系统假死:②程序异步处理(交替执行),提高程序执行效 ...

  9. Java多线程之守护线程实战

    转载自 Java多线程之<<守护线程>>实战 定义 什么是守护线程?与守护线程相对应的就是用户线程,守护线程就是守护用户线程,当用户线程全部执行完结束之后,守护线程才会跟着结束 ...

最新文章

  1. 8月22-23日 首届IT管理技术大会
  2. python有道词典-Python爬取有道词典
  3. SQLite 函数大全
  4. android按钮点击事件(多种方法实现)
  5. PHP定时任务:ignore_user_abort+dowhile sleep+file_get_content crontab(php执行 curl请求) Swoole\Timer::tick
  6. wps 模拟分析 规划求解_【图书推荐】金属塑性加工过程有限元数值模拟及软件应用...
  7. 轻量级 Kubernetes K3s - Github热点
  8. pline加点lisp_用Autolisp 在AutoCAD中实现多种曲线的绘制
  9. 通过腾讯地图服务获取行政区划信息
  10. 树莓派跑php,在树莓派4上部署nginx+php
  11. matlab for循环太慢,Matlab中每个for循环迭代的速度降低
  12. 慎用javascript:void(0) 【转】
  13. Highcharts数据可视化工具功能效果图详解
  14. 卷积神经网络的参数量和计算量
  15. anaconda下载过慢修改源配置
  16. Atitit 函数式编程与命令行语言的区别与优缺点 目录 1. 常见的函数式语言 2 1.1. 命令行 bat 2 1.2. Sql h5 css 正则表达式 2 1.3. 工作流语言 anno注
  17. 人机交互大作业文档预览
  18. IE主页被2345(782782)篡改解决办法
  19. 回头再学Java系列-前言
  20. 存储过程(Stored Procedure)介绍

热门文章

  1. 用python正确的获取文件最后被修改的时间
  2. aws 部署python lambda_python - 如何使用Aws Lambda(python)接收文件 - 堆栈内存溢出
  3. 平板电脑哪个品牌的好_平板电脑性价比排行 这些品牌你值得拥有
  4. Linux下sed命令替换配置文件中某个变量的值(改变包含字符的一行的值)
  5. 在Java中设计和使用自己的注解(转载)
  6. 笔记-高项案例题-2017年下-管理团队-冲突管理
  7. 配置Linux的时钟同步
  8. Leaflet中加载离线OSM瓦片地图(使用OfflineMapMaker切割下载离线png地图文件)
  9. Java中Socket通信-客户端与服务端相互传输对象数据
  10. JPA中实现双向多对多的关联关系(附代码下载)