覆盖Thread类的run()方法使用线程

来源:互联网 发布:个体 crm 知乎 编辑:程序博客网 时间:2024/04/28 08:33

 

Thread类中有两个重要的方法:

void start(): start()方法就是启动线程的方法,这个方法是线程中最核心的方法。当调用这个方法以后,它就会启动线程,并让线程去执行指定的方法,而这里说的

指定的方法,就是run()方法。

void run();run()方法是Thread类中一个普通的方法,它的特殊之处仅仅在于start()方法会将它作为线程的起点。

 

如何让run()方法变成想要让线程去执行的方法呢?

 这里要用到覆盖和继承。使用一个类去继承Thread类,然后为这个Thread类的子类添加一个run()方法,用来覆盖Thread类中原来的run()方法。

那么根据java覆盖的原则,start()方法在调用run()方法的时候,其实就是调用的Thread类中子类的run()方法了。

 

总之一句话:只要在Thread类的子类中的run()方法内容,编写需要让线程执行的代码就可以了。

 

 

举例:

public class MyThread extends Thread
{
 @Override
 public void run()
 {
  System.out.println("呵呵呵,其它线程中执行的代码");
 }
}

public class TestMyThread
{
 public static void main(String[] args)
 {
  MyThread thread = new MyThread();
  thread.start();
 }
}

讲解:

1.新线程的创建和启动其实都是通过java代码触发的。实际上,除了第一个线程(也就是启动程序的,运行main()方法的线程)是由java平台直接创建的之外,其余的线程都是在java代码中通过“创建Thread类的实例,启动线程”这种方式创建并启动的。

2.当启动一个新的线程时,其过程是:由java代码通知java平台,java平台再启动线程。

3.只有所有的线程都退出后,程序才会退出。

原创粉丝点击