java线程的创建方式有哪些

Java线程的创建方式有以下几种:

继承Thread类:创建一个继承自Thread类的子类,并重写run()方法来定义线程执行的任务。然后可以通过创建子类的实例来创建和启动线程。

class MyThread extends Thread {
    public void run() {
        // 线程执行的任务
    }
}
MyThread thread = new MyThread();
thread.start();

实现Runnable接口:创建一个实现了Runnable接口的类,并实现其run()方法来定义线程执行的任务。然后可以通过创建Runnable实现类的实例来创建Thread实例,并调用start()方法来启动线程。

class MyRunnable implements Runnable {
    public void run() {
        // 线程执行的任务
    }
}
MyRunnable runnable = new MyRunnable();
Thread thread = new Thread(runnable);
thread.start();

使用匿名内部类:可以在创建Thread对象时使用匿名内部类来实现run()方法。这种方式比较简洁,适用于定义较为简单的线程任务。

Thread thread = new Thread() {
    public void run() {
        // 线程执行的任务
    }
};
thread.start();

使用Callable和Future:通过创建实现Callable接口的类,并实现其call()方法来定义线程执行的任务。然后可以使用ExecutorService的submit()方法提交Callable任务,并返回一个Future对象,通过Future对象可以获取线程执行结果。

class MyCallable implements Callable<Integer> {
    public Integer call() throws Exception {
        // 线程执行的任务,返回一个结果
        return 1;
    }
}
ExecutorService executor = Executors.newFixedThreadPool(1);
Future<Integer> future = executor.submit(new MyCallable());

使用线程池:可以使用ExecutorService来管理线程池,通过执行Runnable或Callable任务来创建线程。

ExecutorService executor = Executors.newFixedThreadPool(1);
executor.execute(new Runnable() {
    public void run() {
        // 线程执行的任务
    }
});
阅读剩余
THE END