继承Thread类
创建线程的方式一:自定义类继承Thread类,重写run()方法,创建线程对象,调用start()开启线程
线程不一定立即执行,,cpu安排调度。
示例:
package com.jizhi.demo01;
/**
* @author 罗兆良Code
* @ClassName TestThread1
* @date 2020/11/19 16:38
* @Version 1.0
*/
//创建线程的方式一:继承Thread类,重写run()方法,调用start开启线程
public class TestThread1 extends Thread {
//run方法线程体
public void run(){
for (int i = 0; i < 20; i++) {
System.out.println("在看代码===》"+i);
}
}
public static void main(String[] args) {
//创建线程对象
TestThread1 thread1 = new TestThread1();
thread1.start();//调用start()方法开启线程
//main主线程体
for (int i = 0; i < 200; i++) {
System.out.println("在学习多线程===》"+i);
}
}
}
实现runnable接口
创建线程方式2:实现runnable接口,重写run方法,执行线程需要丢入runnable接口实现类,调用start()方法
package com.jizhi.demo01;
/**
* @author 罗兆良Code
* @ClassName TestThread2
* @date 2020/11/19 17:04
* @Version 1.0
*/
//创建线程方式2:实现runnable接口,重写run方法,执行线程需要丢入runnable接口
//实现类,调用start()方法
public class TestThread2 implements Runnable {
//run方法线程体
public void run(){
for (int i = 0; i < 20; i++) {
System.out.println("在看代码===》"+i);
}
}
public static void main(String[] args) {
//创建runnable接口实现类对象
TestThread2 thread2 = new TestThread2();
//创建线程对象,通过线程对象来开启我们的线程,代理
Thread thread = new Thread(thread2);
thread.start();//调用start()方法开启线程
//main主线程体
for (int i = 0; i < 200; i++) {
System.out.println("在学习多线程===》"+i);
}
}
}
推荐使用runnable接口避免单继承局限性,灵活方便,方便同一个对象被多个线程使用。