-4

我想调用一个线程来执行一些代码然后在完成后死掉,在java中最好的方法是什么?

例如。

public void update_labels() throws Exception{

...
call the thread from here, obviously non blocking

...
}

线程将连接到数据库并获取/返回一些变量,然后终止

4

4 回答 4

5

有多种方法可以做到这一点。但是,如果您的要求像您说的那么简单,那么简单:

new Thread(new Runnable() {
    public void run() {
        //your task
    }
}).start();

会做。

还有教程

于 2013-09-09T11:24:09.343 回答
4

线程在这里为您做什么?我理解显而易见的答案——“连接到数据库并获取/返回一些变量”——但我不清楚这个操作对你来说是异步的。

我还建议您研究比Thread. 像 concurrency 包中的一些新类Executor会比 raw 更好Thread。如果您的问题确实可以受益,请查看那些。如果不是,请不要为了复杂性而承担复杂性。

于 2013-09-09T11:30:37.837 回答
3

请参阅此Java 文档。这样你就会知道如何运行一个线程。

以及此链接中的其他参考

或以此为例:

import java.sql.Connection;
import java.sql.SQLException;

public class Runner {

    public static void main(String[] args) throws SQLException {
        ThreadConnection.init("org.hsqldb.jdbcDriver", "jdbc:hsqldb:test", "sa", "");

        Connection connection = ThreadConnection.getConnection();
        // main thread's connection

        new Thread(new Runnable() {
            @Override
            public void run() {
                try {
                    Connection connection = ThreadConnection.getConnection();
                    // this thread's connection
                } catch (Exception e) {
                    e.printStackTrace();
                }               
            }
        }).start();
    }
}
于 2013-09-09T11:23:43.187 回答
3

java中创建线程有两种方式

  1. 创建一个扩展Thread类并覆盖运行方法的类
  2. 创建一个实现Runnable并覆盖 run 方法的类。

在 run 方法中,将您的业务逻辑连接到数据库并完成其余工作。

然后在您的代码中,您可以创建一个线程并通过调用start线程类上的方法来执行它。在此处了解有关创建和运行线程的更多信息:http: //docs.oracle.com/javase/tutorial/essential/concurrency/threads.html

于 2013-09-09T11:21:51.917 回答