class MyThread extends Thread{
private static int s = 10;
public void run(){
for(int x =0; x<200; x++){
if(s>=0)
System.out.println(s--);
}
}
}
public class Threads {
public static void main(String[] args) {
// TODO Auto-generated method stub
MyThread mt1 = new MyThread();
MyThread mt2 = new MyThread();
MyThread mt3 = new MyThread();
mt1.start();
mt2.start();
mt3.start();
}
}
结果:
10
7
6
5
4
3
2
1
0
class Runna implements Runnable{
private int s = 10;
public void run(){
for(int x =0; x<50; x++){
if(s>=0)
System.out.println(s--);
}
}
}
public class Runnables {
public static void main(String[] args) {
// TODO Auto-generated method stub
Runna na = new Runna();
Thread mt1 = new Thread(na);
Thread mt2 = new Thread(na);
Thread mt3 = new Thread(na);
mt1.start();
mt2.start();
mt3.start();
}
}
结果:
10
8
7
6
4
3
2
1
0
9
5
Thread类和Runnable接口实现多线程的区别:
1.Thread类是Runnable接口的子类,使用Runnable接口实现多线程可以避免单继承局限;
2.Runnable接口实现的多线程可以比Thread类实现的多线程更加清楚描述我们数据共享的概念