java线程学习1

这两天终于稍微有点空了 看了下java的线程  实现不同线程主要有两个方法其一是 extends Thread类 其二是implements Runnable接口

 

因为书上例子是不同的方法,我运用相同的方法比较了一下 更加清晰的了解到两者的区别

例如:

View Code
 1 class MyThread implements Runnable{
 2     private  int ticket = 5; 
 3     public void run() {
 4         for(int i=0 ; i<100;i++){
 5             if (ticket>0) {
 6                 System.out.println("卖票:ticket = "+ticket--);
 7             }
 8         }
 9     }
10 }
11 public class study1{
12     public static void main(String[] args) {
13             MyThread a2 = new MyThread();
14             new Thread(a2).start();
15             new Thread(a2).start();
16             new Thread(a2).start();
17         
18     }
19 }

这个是继承runnable接口的  运行结果

卖票:ticket=5
卖票:ticket=3
卖票:ticket=1
卖票:ticket=4
卖票:ticket=2

但是如果继承Thread的话 用相同的方法也是一样的  结果是一样的 也是卖出5张票只是顺序不一样而已

 

但是如果用继承implents Runnable的话  所实例化的类是没有start方法的。因此runnable只能够用一个实例化类去开启多个线程

然而extends Thread类的话 则可以开启多个类的多线程 。一个实例化类开启的多个线程可以共享资源。多个类的则不行。

posted @ 2013-01-24 23:13  Ro_s__  阅读(183)  评论(0编辑  收藏  举报