2019独角兽企业重金招聘Python工程师标准>>>
package com.javaxxz.test;public class Demo extends Thread {/*** 创建线程的方式* 方式一:* 1、自定义一个类继承Thread类* 2、重写Thread类的run方法,把自定线程的任务代码写在run方法中* 3、创建Thread类的子类对象,并且调用start方法开启线程* 一个线程一旦开启,那么线程就会执行run方法中的代码** 疑问:重写run方法的目的是什么?* 解答:每个线程都有自己的任务代码,jvm创建的主线程的任务代码就是Main方法中的所有代码。* 自定义线程的任务代码就写在run方法中,自定义线程负责了run方法中的代码。*/@Overridepublic void run() {for (int i = 0; i < 100; i++) {System.out.println("自定义线程执行" + i);}}public static void main(String[] args) {// 创建了自定义线程的对象Demo demo = new Demo();// 调用start方法启动线程demo.start();for (int i = 0; i < 100; i++) {System.out.println("Main线程执行" + i);}}
}
package com.javaxxz.test;public class Demo1 implements Runnable {/*** 创建线程的方式* 方式二:* 1、自定义一个类实现Runnable接口* 2、实现Runnable接口的run方法,把自定线程的任务代码写在run方法中* 3、创建Runnable接口实现类的对象* 4、创建Thread类的对象,并且把Runnable实现类的对象作为实参传递* 5、调用Thread对象的start方法开启一个线程*/@Overridepublic void run() {for (int i = 0; i < 100; i++) {System.out.println(Thread.currentThread().getName() + "执行:" + i);}}public static void main(String[] args) {Demo1 demo1 = new Demo1();Thread thread = new Thread(demo1,"自定义线程名称");thread.start();for (int i = 0; i < 100; i++) {System.out.println("Main线程执行:" + i);}}
}