网络推广 网站建设 SEO优化 GEO排名

我们专注网站搭建程序开发,网络营销推广,搜索引擎GEO排名SEO优化

免费咨询:15196713510

全国城市

Java并发编程之守护线程

发布日期:2025-10-06 文章浏览: 加入收藏


Java多线程中有一种线程叫做守护线程。我们可以通过一个比喻来理解守护线程。通常,一般工厂都会聘请一批保安,保安的职责是维护工厂的治安,保护工厂的财产,保安的职责就是守护工厂。但是,假如工厂倒闭了, 那么保安也就没有必要存在了。

保安相对于工厂,从某种程度上看就是守护线程相对于Java程序。假如有一条守护线程在一个Java程序中运行,如果程序的主线程退出,那么不管守护线程有没有执行完毕,也会跟随主线程一同退出。

创建守护线程只需要在创建普通线程的基础上调用setDaemon方法, 并设置唯一的参数为true即可。

public class Main {

public static void mainString[] arg {

Thread thread = new ThreadnewRunnable {

@Override

public void run {

whiletrue;

}

};

thread.setDaemontrue;

thread.start;

}

}

上面代码的线程中, 虽然有一个while无限循环,但是随着程序执行的结束,这个线程也会跟谁着一同被终止。 如果把setDaemon方法的调用去掉或者参数设置为false,那么程序将陷入空转,永远不会自行结束。

注意,setDaemon 方法必须在调用start方法前调用,否则会抛出运行时异常

Exceptionin thread "main" java.lang.IllegalThreadStateException

另外,在守护线程中被启动的线程,天生就是守护线程,无法更改,setDaemon方法对它是无效的。

基于守护线程的这中依附于主线程生命周期的特性,在守护线程中不因该去做一些IO操作,如读取文件、访问数据库、发送http请求等,因为在守护线程中总是无法预知,这些操作是否会被完整的执行。

本文标签:
最新内容: 东营京东怎样做视频推广的 2025-10-06 12:01:26 桂林怎样做网络推广赚钱 2025-10-06 12:01:25 岳阳安阳怎样做网络推广 2025-10-06 12:01:23 呼和浩特市场推广怎样做 2025-10-06 12:01:21 定州超市开业后怎样做推广 2025-10-06 12:01:20 霍邱怎样做书法推广挣钱 2025-10-06 12:01:18 西安怎样做线上宣传产品推广 2025-10-06 12:01:17 上海怎样做家具品牌推广 2025-10-06 12:01:16 深圳360推广公司怎样做 2025-10-06 12:01:14 潜江麦当劳怎样做扶持及推广 2025-10-06 12:01:10