我想从我的主Java程序中产生一个java线程,该线程应该单独执行,而不会干扰主程序。下面是它应该是什么样子的:
由用户
发布于 2012-09-23 18:27:07
一种直接的方法是自己手动派生线程:
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服务:
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
}
发布于 2015-05-02 19:31:39
这是使用匿名内部类创建线程的另一种方式。
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();
}
}
发布于 2017-08-02 21:09:02
如果你喜欢用Java 8的方式,你可以像这样简单地做:
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");
}
}
https://stackoverflow.com/questions/12551514
复制相似问题