黑马程序员——Java基础——多线程

来源:互联网 发布:林湖景苑网络 编辑:程序博客网 时间:2024/06/14 00:52

——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-

我们知道,进程就是一个正在执行中的程序,而线程就是一个进程中的多个执行路径。线程通过抢CPU来运行。

线程的定义方式有两种:

第一种是通过继承Thread类。
1、创建一个类继承Thread类;
2、重写 run 方法;
3、调用 start 方法开启线程。

public class ThreadTest {    public static void main(String[] args){        a aa=new a();        aa.start();        b bb=new b("keey");        bb.start();    }}class a extends Thread{    public void run(){        for(int i=0;i<200;i++){            System.out.println(Thread.currentThread().getName()+"  "+i);        }    }    a(){        super("mile");  //调用 Thread 类的构造方法为线程自定义名称    }}class b extends Thread{    public void run(){        for(int i=0;i<200;i++){            System.out.println(this.getName()+i+"----");        }    }    b(String name){        super(name);        }}

第二种是通过实现Runnable接口。
1、创建一个类实现Runnable接口;
2、重写 run 方法;
3、通过 Thread 类建立线程对象;
4、将接口子类对象作为实际参数传给 Thread 类构造函数;
5、Thread 类的 start 方法开启,并调用接口 run方法。

public class ThreadTest2 {    public static void main(String[] args){        c cc=new c();        new Thread(cc).start();        d dd=new d();        new Thread(dd).start();    }}class c implements Runnable{    public void run(){        for(int i=0;i<100;i++){            System.out.println(111111);        }    }}class d implements Runnable{    public void run(){        for(int i=0;i<100;i++){            System.out.println("AAA");        }    }}

两方法的区别:
实现方式的好处:避免了单继承的局限性。
定义线程时,一般建议使用实现方式。
继承Thread:线程代码存放 Thread 子类 run 方法中。
实现 Runnable:代码存放接口子类 run 方法中。

0 0
原创粉丝点击