Java多线程实现的两种方式
程序员文章站
2024-03-31 19:51:04
java多线程实现方式主要有两种:继承thread类、实现runnable接口
1、继承thread类实现多线程
继承thread类的方法尽管被我列为一种多线程实现方式...
java多线程实现方式主要有两种:继承thread类、实现runnable接口
1、继承thread类实现多线程
继承thread类的方法尽管被我列为一种多线程实现方式,但thread本质上也是实现了runnable接口的一个实例,它代表一个线程的实例,并且,启动线程的唯一方法就是通过thread类的start()实例方法。start()方法是一个native方法,它将启动一个新线程,并执行run()方法。这种方式实现多线程很简单,通过自己的类直接extend thread,并复写run()方法,就可以启动新线程并执行自己定义的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接口方式实现多线程
如果自己的类已经继承另一个类,就无法直接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(); } }
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!