Java多线程系列-线程创建

1.如何创建多线程?
Java从语言级别实现多线程,因此实现一个多线程程序非常简单。有两种方法可以实现多线程,即继承Thread类和实现Runnable接口。因为Java不支持多继承的原因,建议尽可能通过实现Runnable接口实现多线程。使用Runnable接口实现多线程有如下优点:
1、可以避免由于Java的单继承特性而带来的局限;
2、增强程序的健壮性,代码能够被多个线程共享,代码与数据是独立的;
3、适合多个相同程序代码的线程区处理同一资源的情况。
两者之间的不同:
*Thread也实现了Runnable接口,因此继承自Thread类的子类也实现了Runnable接口
*继承Thread类实现多线程,每一个线程都独占run方法中的代码,而实现Runnable接口实现的多线程共有run方法中的数据和代码。
*继承Thread类实现多线程,因为独占代码所有不会有线程安全的问题,Runnable接口实现的多线程是不安全的。

以多个窗口销售车票的情况为例子,例子和代码引自:http://blog.csdn.net/ns_code/article/details/17161237
以继承Thread类实现多线程的代码:

class MyThread extends Thread{
    private int ticket = 5;
    public void run(){
        for (int i=0;i<10;i++)
        {
            if(ticket > 0){
                System.out.println("ticket = " + ticket--);
            }
        }
    }
}

public class ThreadDemo{
    public static void main(String[] args){
        new MyThread().start();
        new MyThread().start();
        new MyThread().start();
    }
}

以实现Runnable接口实现多线程的代码为:

class MyThread implements Runnable{
    private int ticket = 5;
    public void run(){
        for (int i=0;i<10;i++)
        {
            if(ticket > 0){
                System.out.println("ticket = " + ticket--);
            }
        }
    }
}

public class RunnableDemo{
    public static void main(String[] args){
        MyThread my = new MyThread();
        new Thread(my).start();
        new Thread(my).start();
        new Thread(my).start();
    }
}
发布了53 篇原创文章 · 获赞 16 · 访问量 15万+

猜你喜欢

转载自blog.csdn.net/gexiaochuan122/article/details/46331589
今日推荐