欢迎访问宙启技术站
智能推送

Java函数创建新的线程的方法

发布时间:2023-06-20 00:14:22

Java是一种多线程编程语言,支持在程序中同时进行多条线程运行,提升程序执行效率。下面介绍Java函数创建新的线程的方法。

Java中创建线程的方式有两种,一种是继承 Thread 类,另一种是实现 Runnable 接口。继承 Thread 类方式如下:

public class ThreadDemo extends Thread {
    public void run() {
        System.out.println("Thread running...");
    }
    public static void main(String[] args) {
        ThreadDemo td = new ThreadDemo();
        td.start();
    }
}

代码中定义了一个类 ThreadDemo,继承了 Thread 类,重写了 run() 方法。在主程序中,先创建 ThreadDemo 的实例 td,然后通过调用实例的 start() 方法启动线程。

以上代码的运行结果为:

Thread running...

实现 Runnable 接口方式如下:

public class ThreadDemo2 implements Runnable {
    public void run() {
        System.out.println("Thread running...");
    }
    public static void main(String[] args) {
        ThreadDemo2 td = new ThreadDemo2();
        Thread t = new Thread(td);
        t.start();
    }
}

代码中定义了一个类 ThreadDemo2,实现了 Runnable 接口,并重写了 run() 方法。在主程序中,先创建 ThreadDemo2 的实例 td,然后创建一个 Thread 对象 t,并将 td 对象传入 Thread 对象的构造方法中。最后调用 start() 方法启动线程。

以上代码的运行结果为:

Thread running...

以上两种方式的区别在于,继承 Thread 类的方式直接重写 Thread 类的 run() 方法,使用起来较为简单;而实现 Runnable 接口方式则需要自己定义一个实现了 run() 方法的类,并将其传入 Thread 对象中进行创建。

在某些情况下,我们需要创建一个匿名的线程,可以使用以下方式:

Thread t = new Thread(new Runnable() {
    @Override
    public void run() {
        System.out.println("Thread running...");
    }
});
t.start();

以上代码中,我们使用了一个匿名的 Runnable 类,并重写了 run() 方法,然后将其传入 Thread 对象中进行创建。

Java 中创建线程还有一种方式是使用 Executor 框架,使用该框架可以线程的开销控制更精细,代码如下:

Executor executor = Executors.newFixedThreadPool(10);
for (int i = 0; i < 100; i++) {
    executor.execute(new Runnable() {
        @Override
        public void run() {
            System.out.println("Thread running...");
        }
    });
}

以上代码中,我们首先通过 Executors.newFixedThreadPool(10) 创建了一个线程池,最大线程数为 10。然后通过循环调用 executor.execute() 方法将需要运行的任务提交到线程池中执行。

总结:

Java 中创建线程的方式有两种,一种是继承 Thread 类,另一种是实现 Runnable 接口。使用线程池也可以更加精细控制线程的开销。在实际开发中,要根据具体的需求选择不同的方式来创建线程。