标签: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();
}
}
标签:java多线程
原文地址:http://blog.csdn.net/samdy1990/article/details/46331589