Java多线程的使用

王朝学院·作者佚名  2016-08-27
窄屏简体版  字體: 小  |  中  |  大  |  超大  

java有两种方式实现多线程。

第一种——继承Thread类,并重写run方法

步骤:

定义类继承Thread类;重写子类的run方法,将线程需要执行的代码写在run方法中;创建子类的对象,则创建了线程对象;调用该对象的start方法,开启线程。

实例:

publicclassMyThreadextendsThread() {

@Overridepublicvoidrun() {//多线程代码}//其他代码}

Thread t =newMyThread();

t.start();

第二种——实现Runnable接口,用该类的对象构造Thread类

步骤:

定义类实现Runnable接口;实现接口中的run方法,将线程需要执行的代码写在run方法中;用接口对象构造一个Thread对象;调用Thread对象的start方法,开启线程。

实例:

publicclassMyClassimplementsRunnable() {publicvoidrun() {//多线程代码}//其他代码}

MyClass m =newMyClass();

Thread t=newThread(m);

t.start();

start方法的功能

启动了线程让jvm调用了Thread类(或子类)对象的run方法

为什么可以有以上两种方式实现多线程?

对于第一种方式很容易理解。由于重写了Thread类的run方法,调用start方法启动线程后,jvm将调用子类重写的run方法;

对于第二种方式,调用start方法启动线程后,jvm将调用Thread类的run方法,其代码如下:

publicvoidrun() {if(target !=null) {

target.run();

}


}

其中target为Thread类的成员变量,类型为Runnable。在用Runnable对象构造Thread时,会使target引用该接口对象,所以执行target.run()时,实际上执行了接口对象的run方法。

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航