Thread的使用
线程的创建方法一
通过继承Thread类实现run()方法,再通过主线程(main线程)创建继承Thread类的对象调用start()
一个java程序至少会有一个线程在运行
public class TestThread1 extends Thread {
@Override
public void run(){
//run方法线程体
for (int i = 0; i < 200; i++) {
System.out.println("我在看代码---"+i);
}
}
//main线程,主线程
public static void main(String[] args) {
//创建一个线程对象
TestThread1 testThread1=new TestThread1();
//调用start方法,开启线程
testThread1.start();
for (int i = 0; i < 500; i++) {
System.out.println("我在看小说---"+i);
}
}
}
不建议使用避免OOP单继承局限性
线程的创建方法二
通过实现Runnable接口里的run()方法,再通过主线程创建实现Runnable接口的对象,new一个Thread类在构造器里添加对象调用start()
public class TestThread3 implements Runnable{
@Override
public void run() {
for (int i = 0; i < 20; i++) {
System.out.println("Runnable的学习--"+i);
}
}
public static void main(String[] args) {
//创建Runnable接口的实例化对象
TestThread3 testThread3=new TestThread3();
//创建线程对象,通过线程对象开启我们的线程,代理
new Thread(testThread3).start();
for (int i = 0; i < 20; i++) {
System.out.println("main方法--"+i);
}
}
}
推荐使用避免单继承局限性,灵活方便,方便同一个对象被多个线程使用
总结
调用start方法会使线程进入就绪状态线程而不是立马执行,执行由cpu调度执行
不直接使用run()方法执行是因为执行run()方法相当于是在main线程里直接执行