相关疑难解决方法(0)

Java中的"实现Runnable"与"扩展线程"

从我在Java中使用线程的时间开始,我发现了这两种编写线程的方法:

implements Runnable:

public class MyRunnable implements Runnable {
    public void run() {
        //Code
    }
}
//Started with a "new Thread(new MyRunnable()).start()" call
Run Code Online (Sandbox Code Playgroud)

或者,用extends Thread:

public class MyThread extends Thread {
    public MyThread() {
        super("MyThread");
    }
    public void run() {
        //Code
    }
}
//Started with a "new MyThread().start()" call
Run Code Online (Sandbox Code Playgroud)

这两个代码块有什么显着差异吗?

java multithreading runnable implements java-threads

2023
推荐指数
30
解决办法
67万
查看次数

在java中创建后台线程的最佳方法

创建后台线程的最佳方法是什么,每15分钟运行一次以从数据库中获取数据?

下面是我所拥有的代码,我认为它在生产中会正常工作,但是我还有其他更好的方法或我应该注意的事情吗?

private static void checkDatabaseEveryXMinutes() {
    new Thread() {
        public void run() {
            while (true) {
                try {
                    Thread.sleep(checkingAfterEveryXMinutes);
                    getDataFromDatabase();
                } catch (InterruptedException ex) {
                    //log here
                } catch (Exception e) {
                    //log here
                }
            }
        }
    }.start();
}
Run Code Online (Sandbox Code Playgroud)

使用上面的代码有什么不利之处.ScheduledExecutorService与TimerTask的比较如何?

哪种方式更好?

如果有更好的方法,我会对此代码的任何示例基础表示赞赏.

java multithreading background-thread

6
推荐指数
1
解决办法
2万
查看次数