java创建线程的四种方式

在Java中,创建线程主要有以下四种方式:

继承Thread类

创建一个继承自Thread类的子类。

重写run()方法,该方法包含线程执行的代码。

创建子类的实例,并调用start()方法启动线程。

实现Runnable接口

创建一个实现Runnable接口的类。

实现run()方法,该方法包含线程执行的代码。

创建Runnable实现类的实例,并将其作为参数传递给Thread类的构造函数。

创建Thread对象,并调用start()方法启动线程。

实现Callable接口

创建一个实现Callable接口的类。

实现call()方法,该方法可以返回一个结果,并且可以抛出异常。

创建Callable实现类的实例。

使用FutureTask类包装Callable实例。

创建一个Thread对象,并将FutureTask实例作为参数传递给它。

调用Thread对象的start()方法启动线程。

调用FutureTask对象的get()方法获取线程执行的结果。

使用线程池

使用ExecutorService框架创建线程池。

提交任务给线程池,任务可以是RunnableCallable接口的实现。

线程池管理线程的创建和执行,可以复用线程,提高效率。

以上是Java中创建线程的四种主要方式。每种方式都有其适用场景和优缺点。选择哪种方式取决于具体的需求,例如是否需要返回执行结果、是否需要线程复用等