java 如何实现多线程

来源:互联网 发布:手机p图软件 编辑:程序博客网 时间:2024/05/01 00:15

java中多线程的实现方式有两种,一种是继承java.lang.Thread类,另一种是实现java.lang.Runnable接口。

下面是两种方式的简单代码。

继承Thread类方式:


import java.lang.Thread;//用集成Thread类方式实现多线程。public class Test{public static void main(String arg[]){T t1=new T();T t2=new T();//更改新线程名称t1.setName("t1");t2.setName("t2");//启动线程t1.start();t2.start();}}class T extends Thread{//重写run()方法public void run(){System.out.println(this.getName());}}

输出结果为:

t1

t2



实现Runnable接口方式:

在使用Runnable接口时需要建立一个Thread实例。因此,无论是通过Thread类还是Runnable接口建立线程,都必须建立Thread类或它的子类的实例。

import java.lang.*;//用实现Runnable接口的方式实现多线程。public class Test{public static void main(String arg[]){T t1=new T();T t2=new T();//一定要实例化Thread对象,将实现Runnable接口的对象作为参数传入。Thread th1=new Thread(t1,"t1");Thread th2=new Thread(t2,"t2");//启动线程th1.start();th2.start();}}class T implements Runnable{//重写run()方法public void run(){System.out.println(Thread.currentThread().getName());}}

输出结果为:

t1

t2



public void run()方法是JAVA中线程的执行体方法,所有线程的操作都是从run方法开始,有点类似于main()方法,即主线程。

所以不论那一种方式的多线程,都要重写run()方法才能实现相关操作,否则即使实现了多线程,但由于run()方法为空,结果什么也没发生。

然后用Thread实例对象的start()方法启动线程,start()方法内部自动会调用run()方法,执行操作。