首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >关于守护进程线程

关于守护进程线程
EN

Stack Overflow用户
提问于 2012-05-06 14:23:58
回答 1查看 179关注 0票数 1

我正在做一种研究,其中我想使用户线程作为守护程序线程,Thread.setDaemon(真)使一个线程守护程序,但由于我们knowDaemon线程适合做后台工作,所以我想链接我的这个线程到任何后台守护程序线程,以便我的守护程序线程可以提供一些服务,它应该结束时,该守护程序线程结束时,虽然我已经创建了守护程序线程,但请告诉我如何通过我的守护程序线程提供服务到任何现有的守护程序线程,然后它应该结束最后,请告知。

代码语言:javascript
运行
复制
     Thread daemonThread = new Thread(new Runnable(){
            @Override
           public void run(){
               try{
               while(true){
                   System.out.println("Daemon thread is running");
               }

               }catch(Exception e){

               }finally{
                   System.out.println("Daemon Thread exiting"); //never called
               }
           }
       }, "Daemon-Thread");

       daemonThread.setDaemon(true); //making this thread daemon
       daemonThread.start();


}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-05-06 14:35:50

我不知道你的意思,但我会改变

代码语言:javascript
运行
复制
while(true){

代码语言:javascript
运行
复制
while(!Thread.currentThread.isInterrupted()){

这将允许您的线程在中断时停止。

我还会考虑使用ExecutorService,因为这样可以更容易地将工作传递给另一个线程,并在完成时将其关闭。

代码语言:javascript
运行
复制
ExecutorService service = Executors.newSingleThreadExecutor(new ThreadFactory() {
    @Override
    public Thread newThread(Runnable r) {
        Thread t = new Thread(r, "worker");
        t.setDaemon(true);
        return t;
    }
});

service.submit(new Runnable() { /* task for this thread to perform */ });

service.shutdown(); // to stop it.
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10468629

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档