温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

怎么在java中使用守护线程

发布时间:2021-04-25 15:21:09 来源:亿速云 阅读:150 作者:Leah 栏目:编程语言

这期内容当中小编将会给大家带来有关怎么在java中使用守护线程,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

Java的特点有哪些

Java的特点有哪些 1.Java语言作为静态面向对象编程语言的代表,实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。 2.Java具有简单性、面向对象、分布式、安全性、平台独立与可移植性、动态性等特点。 3.使用Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。

1.守护线程概念

专门用于服务其他的线程,如果其他的线程(即用户自定义线程)都执行完毕,连main线程也执行完毕,那么jvm就会退出(即停止运行)。典型的守护线程就是垃圾回收线程。可以通过调用Thead类的setDaemon(true)方法设置当前的线程为守护线程。

2.守护线程使用事项

(1)setDaemon(true)必须在start()方法前执行,否则会抛IllegalThreadStateException异常;

(2)在守护线程中产生的新线程也是守护线程 ;

(3)不是所有的任务都可以分配给守护线程来执行,比如读写操作或者计算逻辑。

public class DaemonThread extends Thread {
 
    private int i = 0;
 
    @Override
    public void run() {
        super.run();
        try {
            while (true){
                i++;
                System.out.println("i = " + i);
                Thread.sleep(1000);
            }
        }catch (Exception e){
            e.printStackTrace();
        }
    }
}
 
 
public class DaemonThread extends Thread {
 
    private int i = 0;
 
    @Override
    public void run() {
        super.run();
        try {
            while (true){
                i++;
                System.out.println("i = " + i);
                Thread.sleep(1000);
            }
        }catch (Exception e){
            e.printStackTrace();
        }
    }
}

3.守护线程属性继承父线程实例

直接看 Thread 源代码构造方法里面就可以知道,代码如下:

private Thread(ThreadGroup g, Runnable target, String name,
 
long stackSize, AccessControlContext acc,
 
boolean inheritThreadLocals) {
 
...省略一堆代码
 
this.daemon = parent.isDaemon();
 
...省略一堆代码
 
}

上述就是小编为大家分享的怎么在java中使用守护线程了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI