java 多线程的实现方法
可以通过继承Thread类和实现Runnable接口来实现,而Thread类实际上实现了Runnable接口 ,两种创建线程的方法性质是一样的,并没有什么本质区别
Thread类
1. 创建MyThread 类并继承Thread类
public class MyThread extends Thread{}
2. 在MyThread类中重写 Thread类的run()方法,值得一提的是Thread类的run()方法是实现了Runnable接口,所以继承Thread类和实现Runnable并没有本质区别
1 public class MyThread extends Thread{ 2 public void run(){ 3 //线程的执行代码 4 } 5 }
3. 创建MyThread 类的实例并调用Thread类的start()方法
1 public static void main(String[] args ){ 2 MyThread myTh=new MyThread(); 3 myTh.start();//调用Thread类的start()方法 4 }
为什么不是myTh.run()而是 myTh.start() ?
因为在myTh.run()是由main主线程来执行myTh.run()方法。myTh.start()是由自己创建的线程执行
myTh.run() 直接由main()主线程执行run方法,依旧是单线程。
myTh.start() 告诉“线程规划器”该线程已经准备好了,等你来cpu来调用该线程对象的 run方法,使线程得到启动是,是异步执行。