线程的四种创建方式

简介: 线程的四种创建方式

四种创建线程的方式:

  • 继承 Thread 类
  • 实现 Runnable 接口
  • 通过 ExecutorService 和 Callable<Class> 实现有返回值的线程
  • 基于线程池的execute(),创建临时线程

1 继承 Thread 类

Thread 类实现了 Runnable 接口并定义了操作线程的一些方法,我们可以通过创建类时继承 Thread类来创建一个线程。

具体实现:

(1)创建一个继承Thread的类ThreadDemo

(2)重新run()方法

调用步骤:

(1)创建ThreadDemo 类的对象t1

(2)执行t1.start() 方法来启动线程

//创建线程类
public class ThreadDemo extends Thread {
    //重写run()方法
    @Override
    public void run() {
        for(int i = 0;i<1000;i++) {
            System.out.println("Thread::"+i);
        }
    }
}
/***********************************************************************/
//调用线程
//创建线程对象
ThreadDemo t1 = new ThreadDemo();
//启动线程
t1.start();

run()方法中是线程的具体逻辑操作,

start()是一个native本地方法,通过操作系统启动一个线程。

2 实现 Runnable 接口

通过实现Runnable 接口来创建线程类 RThread,但是使用的时候,仍需要创建Thread 对象,把RThread的对象当成参数传入。

具体操作:

(1)实现Runnable 接口创建线程类 RThread

(2)重写run()方法

调用步骤:

(1)创建RThread 类的对象 rThread

(2)创建Thread类对象,并把rThread当成参数传入,相当于对rThread进行了封装。

(3)通过start()方法启动线程

//实现Runnable 接口创建线程类 RThread
public class RThread implements Runnable {
    @Override
    //重写run()方法
    public void run() {
        for(int i = 0;i<1000;i++) {
            System.out.println("Thread::"+i);
        }
    }
}
/***********************************************************************/
//调用线程
//创建RThread 类的对象 rThread
RThread rThread = new RThread();
//创建Thread类对象,并把rThread当成参数传入,相当于对rThread进行了封装。
Thread t2 = new Thread(rThread);
//通过start()方法启动线程
t2.start();



相关文章
|
1月前
|
安全 Java 调度
线程的四种创建方式
【10月更文挑战第22天】在多线程编程中,还需要注意线程安全、死锁等问题,以确保程序的正确性和稳定性。通过合理地运用线程创建方式和相关技术,我们可以充分发挥多线程的优势,提高程序的性能和并发处理能力。
|
3月前
|
缓存 C语言
线程的创建过程
【9月更文挑战第15天】线程是由内核和用户态协同实现的机制。`pthread_create` 函数在 Glibc 中定义,首先处理线程属性参数,如栈大小,默认值或传入值。每个线程有一个 `pthread` 结构来维护状态。创建线程时,需要分配线程栈,并进行以下操作:获取栈大小、设置保护区域、缓存管理、内存映射、栈初始化及保护、填充 `pthread` 结构并管理栈缓存。最终通过 `create_thread` 函数调用 `clone` 系统调用创建线程,共享进程数据结构
|
7月前
|
Java API 调度
Java多线程基础(线程与进程的区别,线程的创建方式及常用api,线程的状态)
Java多线程基础(线程与进程的区别,线程的创建方式及常用api,线程的状态)
78 0
Java多线程基础(线程与进程的区别,线程的创建方式及常用api,线程的状态)
|
7月前
线程间的同步的方式有哪些
线程间的同步的方式有哪些
|
缓存 Java
线程池的7种创建方式(一)
线程池的7种创建方式
166 0
|
存储 安全 Java
线程池的7种创建方式(二)
线程池的7种创建方式
|
Java API 调度
线程的创建和使用
线程的创建和使用
56 0
|
Java
创建多线程的方式四:使用线程池
创建多线程的方式四:使用线程池
59 0
|
C++
线程的2种创建方式
当一个类继承了Thread类,该类就可以当作线程使用。 run方法其实是一个普通方法,是Runnable接口的一个方法。 Thread类也是进行了重写。 真正实现多线程的start方法中的start0方法。 这是一个本地native方法,由c/c++实现。
85 0
|
Java 调度
进程和线程、实现多线程的两种方式、设置获取线程名称、线程优先级及线程控制
进程和线程、实现多线程的两种方式、设置获取线程名称、线程优先级及线程控制的简单示例
137 1
进程和线程、实现多线程的两种方式、设置获取线程名称、线程优先级及线程控制