首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在java中创建在后台运行的线程

在java中创建在后台运行的线程
EN

Stack Overflow用户
提问于 2012-09-23 18:23:28
回答 4查看 102.8K关注 0票数 45

我想从我的主Java程序中产生一个java线程,该线程应该单独执行,而不会干扰主程序。下面是它应该是什么样子的:

由用户

  • 启动的
  1. 主程序执行一些业务工作,并且应该创建一个新线程,该线程一旦创建就可以处理后台进程
  2. ,主程序不应该等到派生的线程完成。事实上,它应该是无缝的..
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-09-23 18:27:07

一种直接的方法是自己手动派生线程:

代码语言:javascript
复制
public static void main(String[] args) {

     Runnable r = new Runnable() {
         public void run() {
             runYourBackgroundTaskHere();
         }
     };

     new Thread(r).start();
     //this line will execute immediately, not waiting for your task to complete
}

或者,如果您需要派生多个线程或需要重复执行此操作,则可以使用更高级别的并发API和executor服务:

代码语言:javascript
复制
public static void main(String[] args) {

     Runnable r = new Runnable() {
         public void run() {
             runYourBackgroundTaskHere();
         }
     };

     ExecutorService executor = Executors.newCachedThreadPool();
     executor.submit(r);
     // this line will execute immediately, not waiting for your task to complete
     executor.shutDown(); // tell executor no more work is coming
     // this line will also execute without waiting for the task to finish
    }
票数 100
EN

Stack Overflow用户

发布于 2015-05-02 19:31:39

这是使用匿名内部类创建线程的另一种方式。

代码语言:javascript
复制
    public class AnonThread {
        public static void main(String[] args) {
            System.out.println("Main thread");
            new Thread(new Runnable() {
                @Override
                public void run() {
                System.out.println("Inner Thread");
                }
            }).start();
        }
    }
票数 10
EN

Stack Overflow用户

发布于 2017-08-02 21:09:02

如果你喜欢用Java 8的方式,你可以像这样简单地做:

代码语言:javascript
复制
public class Java8Thread {

    public static void main(String[] args) {
        System.out.println("Main thread");
        new Thread(this::myBackgroundTask).start();
    }

    private void myBackgroundTask() {
        System.out.println("Inner Thread");
    }
}
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12551514

复制
相关文章

相似问题

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