[javaSE] 多线程(守护线程)详解编程语言
2023-06-13 09:20:37 时间
我们一般使用多线程,都是while的死循环,想要结束线程,只需退出死循环即可
当线程中调用了sleep()方法或者wait()方法,当前的线程就会进入冻结状态,这个线程就结束不了
调用Thread对象的interrupt()方法,可以强制解冻,此时run()方法中需要捕获到InterruptException异常,然后进行处理,就可以关闭线程了
调用Thread对象的setDaemon()方法,参数:true
守护线程是后台线程,当前台线程全都结束以后,后台线程自动结束
class Ticket implements Runnable { private int nums = 100; @Override public 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(); }
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/12645.html
cjava相关文章
- python3.9多线程_python多线程没用
- 十五、多线程【黑马JavaSE笔记】
- 2023-JavaSE最新整理面试题-IO和多线程专题
- Python教程:如何创建多线程?
- java同步机制解决多线程安全问题
- Java多线程:条件变量
- [javaSE] 看博客学习多线程的创建方式和优劣比较和PHP多线程详解编程语言
- [javaSE] 多线程(售票例子)详解编程语言
- Java多线程1:进程与线程概述详解编程语言
- 学习Linux多线程:掌握多线程技术,提高程序效率(linux多线程学习)
- 如何高效地利用多线程提高Linux处理速度?(多线程处理linux)
- 解锁多线程加速从Redis获取致胜数据(多线程获取redis值)
- Redis过期机制强力升级多线程自动清理(redis过期 多线程)
- Python使用代理抓取网站图片(多线程)