多线程
来源:互联网 发布:淘宝申请客服介入流程 编辑:程序博客网 时间:2024/06/05 13:35
Java的多线程实现:
在Java中实现多线程有以下两种方式:
A 继承 Thread 类
B 实现 Runnable 接口
一 , 继承 Thread 类
Thread类实在java.lang包中定义的。一个类只要继承了Thread类,就称为多线程操作类,在Thread的子类中,必须明确的覆写Thread类中的run()方法,此方法为线程的主体。
线程操作类格式
class MyThread extends Thread //定义类继承Thread类 作为线程的实现类{ private String name ; // 定义属性 表示线程名称 public MyThread(String name) //构造方法 { this.setName(name) ; //为属性赋值 } public void run() //覆写run()方法,作为线程 操作主体 { for(int i=0;i<10;i++) { System.out.println(name + "i = " + i) ; } }}
class MyThreadDemo01 extends Thread //定义类继承Thread类 作为线程的实现类{ private String name ; // 定义属性 表示线程名称 pubcli MyThreadDemo01 //构造方法 { this.setName(name) ; //为属性赋值 } public void run() //覆写run()方法,作为线程 操作主体 { for(int i=0;i<10;i++) { System.out.println(name + "i = " + i) ; } }}
二 实现Runnable接口
在Java中也可以通过实现Runnable接口来实现多线程,Runnable接口中只定义了一个抽象方法
public void run() ; //抽象方法
class MyThread implements Runnable //定义类实现Runnable接口 作为线程的实现类{ private String name ; // 定义属性 表示线程名称 public MyThread(String name) //构造方法 { this.name = name ; //为属性赋值 } public void run() //覆写run()方法,作为线程 操作主体 { for(int i=0;i<10;i++) { System.out.println(name + "i = " + i) ; } }}
如果要启动线程,则肯定依靠Thread类,但是之前如果直接继承了Thread类,则可以直接使用start()方法,但是在Runnable接口中没有此方法。
Thread类的构造
使用下面方法启动多线程
public Thread(Runnable target)
class MyThread implements Runnable //定义类实现Runnable接口 作为线程的实现类{ private String name ; // 定义属性 表示线程名称 public MyThread(String name) //构造方法 { this.name = name ; //为属性赋值 } public void run() //覆写run()方法,作为线程 操作主体 { for(int i=0;i<10;i++) { System.out.println(name + "i = " + i) ; } }}public class RunnableDemo01{ public static void main(String[] args) { MyThread mt1 = new MyThread("IronMan") ; //实例化对象 MyThread mt2 = new MyThread("SpiderMan") ; //实例化对象 Thread t1 = new Thread(mt1) ; //实例化Thread类对象 Thread t2 = new Thread(mt2) ; //实例化Thread类对象 t1.start() ; //调用线程操作主体 t2.start() ; //调用线程操作主体 }}
三 Thread类和Runnable接口的区别
使用Thread类在操作多线程的时候,无法实现资源共享的目的,而使用Runnable接口的时候可以实现资源共享。
0 0