Java多线程实现的两种方式

网友投稿 210 2023-06-18


Java多线程实现的两种方式

java多线程实现方式主要有两种:继承Thread类、实现Runnable接口

1、继承Thread类实现多线程

继承Thread类的方法尽管被我列为一种多线程实现方式,但Thread本质上也是实现了Runnable接口的一个实例,它代表一个线程的实例,并且,启动线程的唯一方法就是通过Thread类的start()实例方法。start()方法是一个native方法,它将启动一个新线程,并执行run()方法。这种方式实现多线程很简单,通过自己的类直接extend Thread,并复写rVWBdmKun()方法,就可以启动新线程并执行自己定义的run()方法。例如:

public class MaYi extends Thread {

String name;

public MaYi(String name){

this.name = name;

}

public void run(){

while(true){

try {

Thread.sleep(1000);//等待1秒

} catch (InterruptedException e) {

e.printStackTrace();

}

System.out.println(name+"蚂蚁正在下载......");

}

}

}

启动线程:

public static void main1(String[] args) {

MaYi m1 = new MaYi("1号");

m1.start();

MaYi m2 = new MaYi("2号");

m2.start();

2、实现Runnable接口方式实现多线程

如果自己的类已经继承另一个类,就无法http://直接extends Thread,此时,必须实现一个Runnable接口,如下:

public class MyThread extends OtherClass implements Runnable {

  public void run() {

   System.out.println("MyThread.run()");

  }

}

为了启动MyThread,需要首先实例化一个Thread,并传入自己的MyThread实例:

MyThread myThread = new MyThread();

Thread thread = new Thread(myThread);

thread.start();

事实上,当传入一个Runnable target参数给Thread后,Thread的run()方法就会调用target.run(),参考JDK源代码:

public void run() {

  if (target != null) {

   target.run();

  }

}


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:简单的渐变轮播插件
下一篇:angular2倒计时组件使用详解
相关文章

 发表评论

暂时没有评论,来抢沙发吧~