Java中创建线程的两种方式详细说明
Java中创建线程的两种方式
创建线程方式一
通过继承Thread类来创建并启动多线程
Java使用java.lang.Thread类代表线程,所有的线程对象都必须是Thread类或其子类的实例。每个线程的作用是完成一定的任务,实际上就是执行一段程序流即一段顺序执行的代码。Java使用线程执行体来代表这段程序流。 Java中通过继承Thread类来创建并启动多线程的步骤如下:
- 定义Thread类的子类,并重写该类的run()方法,该run()方法的方法体就代表了线程需要完成的任务,因此把run()方法称为线程执行体
- 创建Thread子类的实例,即创建了线程对象
- 调用线程对象的start()方法来启动该线程
自定义线程类:
/** * 自定义线程类 */ public class MyThread extends Thread { public MyThread(String name){ super(name); } @Override public void run() { for(int i = 1; i <= 20; i++){ System.out.println(getName() + " " + i); } } }
测试类:
/** * 创建线程方式一: * 1. 创建自定义类继承Thread类 * 2. 重写run方法(run方法就是新的线程要执行的代码) * 3. 创建自定义类对象(线程对象) * 4. 调用start方法开启新的线程 */ public class Demo01 { public static void main(String[] args) { System.out.println("main线程开启"); // 创建线程对象 MyThread myThread = new MyThread("线程A"); // 开启新的线程myThread myThread.start(); // 这个循环在main线程中执行 for (int i = 1; i <= 20; i++) { System.out.println("mian线程 " + i); } } }
创建线程方式二
通过实现Runnable类来创建并启动多线程
采用java.lang.Runnable 也是非常常见的一种,我们只需要重写run方法即可 步骤如下:
- 定义Runnable接口的实现类,并重写该接口的run()方法,该run()方法的方法体同样是该线程的线程执行体
- 创建Runnable实现类的实例,并以此实例作为Thread的target来创建Thread对象,该Thread对象才是真正的线程对象
- 调用线程对象的start()方法来启动线程
代码如下:
public class MyRunnable implements Runnable { @Override public void run() { for (int i = 1; i <= 20; i++) { System.out.println(Thread.currentThread().getName() + " " + i); } } }
/** * 创建线程方式二: * 1. 定义自定义类实现Runnable接口 * 2. 重写run方法 * 3. 创建自定义对象 * 4. 创建Threed对象的时候,作为构造方法的参数进行传递 * 5. 启动线程start方法 */ public class Demo02 { public static void main(String[] args) { // 创建线程任务对象 MyRunnable myRunnable = new MyRunnable(); // 创建线程对象 Thread t1 = new Thread(myRunnable, "线程A"); Thread t2 = new Thread(myRunnable, "线程B"); // 开启线程 t1.start(); t2.start(); } }
到此这篇关于Java中创建线程的两种方式详细说明的文章就介绍到这了,更多相关Java中创建线程内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
SpringBoot整合Flyway的方法(数据库版本迁移工具)
这篇文章主要介绍了SpringBoot整合Flyway的方法(数据库版本迁移工具),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2020-06-06Java使用jacob将微软office中word、excel、ppt转成pdf
这篇文章主要为大家详细介绍了Java使用jacob将微软office中word、excel、ppt转成pdf,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2018-12-12java中hasNextInt判断后无限循环输出else项的解决方法
这篇文章主要介绍了java中hasNextInt判断后无限循环输出else项的解决方法的相关资料,需要的朋友可以参考下2016-10-10
最新评论