码迷,mamicode.com
首页 > 编程语言 > 详细

java Thread和Runnable区别

时间:2016-05-10 23:11:37      阅读:178      评论:0      收藏:0      [点我收藏+]

标签:

package com.tonyluis;
class MyThread extends Thread{
    private int ticketNum;  
    private String name;  
    public MyThread(String name,int ticketNum){
    	super("Thread:"+name);//线程名
        this.name =name; 
        this.ticketNum=ticketNum;
    }
    public void run(){
    	int tmp=this.ticketNum;
    	String threadName = Thread.currentThread().getName();
        for(int i =0;i<tmp;i++){  
            if(this.ticketNum>0){  
                System.out.println("ThreadName:"+threadName+" "+this.name+"剩余 "+(this.ticketNum--));  
            }  
        }  
    }  
}
class MyThread1 implements Runnable{  
    private int ticketNum =10;
    public void run(){
    	int tmp=this.ticketNum;
    	String threadName = Thread.currentThread().getName();
        for(int i =0;i<tmp;i++){  
            if(this.ticketNum>0){  
                System.out.println("ThreadName:"+threadName+" "+"剩余 "+(this.ticketNum--));  
            }  
        }  
    }  
} 
public class TestThread {  
    public static void main(String[] args) {  
        new MyThread("窗口1",3).start();
        new MyThread("窗口2",4).start();
        new MyThread("窗口3",2).start();
        MyThread1 mt = new MyThread1(); 
        new Thread(mt,"窗口4").start();
        new Thread(mt,"窗口5").start();
        new Thread(mt,"窗口6").start();
        
    }  
  
}  

 运行结果:

ThreadName:Thread:窗口3 窗口3剩余 2
ThreadName:Thread:窗口1 窗口1剩余 3
ThreadName:Thread:窗口2 窗口2剩余 4
ThreadName:Thread:窗口1 窗口1剩余 2
ThreadName:Thread:窗口3 窗口3剩余 1
ThreadName:Thread:窗口1 窗口1剩余 1
ThreadName:Thread:窗口2 窗口2剩余 3
ThreadName:Thread:窗口2 窗口2剩余 2
ThreadName:Thread:窗口2 窗口2剩余 1
ThreadName:窗口5 剩余 10
ThreadName:窗口4 剩余 9
ThreadName:窗口6 剩余 10
ThreadName:窗口4 剩余 7
ThreadName:窗口5 剩余 8
ThreadName:窗口4 剩余 5
ThreadName:窗口6 剩余 6
ThreadName:窗口4 剩余 3
ThreadName:窗口5 剩余 4
ThreadName:窗口4 剩余 1
ThreadName:窗口6 剩余 2

继承Thread一般是多个线程分别完成自己的任务,实现Runable可以实现多个线程共同完成一个任务,而Thread需要通过内部类进行实现,实现起来比较麻烦

详见:http://blog.csdn.net/yilip/article/details/8147027

接口中不能有构造函数,所以,当你使用接口的时候,没法通过使用构造函数来传递变量

java Thread和Runnable区别

标签:

原文地址:http://www.cnblogs.com/tonyluis/p/5479695.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!