您的位置:首页 > 其它

多线程

2015-11-30 11:08 183 查看
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接口的时候可以实现资源共享。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: