Java多线程基础知识(上)

2017-08-16  本文已影响0人  K也许K
package multi_thread;

class Thread1 extends Thread{
    private String name;
    private int count;
    public Thread1(String name,int count) {
        this.name=name;
        this.count=count;
    }
    @Override
    public void run() {
        // TODO Auto-generated method stub
        while(count>0)
            System.out.println(name+"窗口卖票:"+ (count--));
    }
}

public class Thread_test {
    public static void main(String[] args) {
        Thread1 mTh1=new Thread1("A",5);
        Thread1 mTh2=new Thread1("B",5);
        mTh1.start();
        mTh2.start();
    }

}

运行结果

image.png
package multi_thread;

class Thread2 implements Runnable{
    private int count;
    Thread2(int count){
        this.count=count;
    }
    @Override
    public void run() {
        // TODO Auto-generated method stub
        while(count>0)
            System.out.println(Thread.currentThread().getName()+"窗口卖票:"+count--);
    }
}

public class Runnable_test {
    public static void main(String[] args) {
        Thread2 t2=new Thread2(5);
        new Thread(t2,"C").start();
        new Thread(t2,"D").start();     
    }
}

运行结果

image.png

实现Runnable接口比继承Thread类具有的优势,在项目中一般使用实现接口的方式,实现接口的优势有:
1.适合多个相同的程序代码的线程去处理同一个资源
2.可以避免java中的单继承的限制
3.增加程序的健壮性,代码可以被多个线程共享,代码和数据独立
4.线程池只能放入实现Runable或callable类线程,不能直接放入继承Thread的类

上一篇下一篇

猜你喜欢

热点阅读