黑马程序员技术交流社区
标题:
Thread子类的特殊用法------求版主给技术分(这可是自己想...
[打印本页]
作者:
胥文
时间:
2013-2-21 22:30
标题:
Thread子类的特殊用法------求版主给技术分(这可是自己想...
毕老师在讲线程的时候,创建线程的第一种方式是继承Thread,然后用子类对象调用start()方法,但是多线程的时候就出现问题
然后就讲了实现Runnable创建线程的第二种方式。
今天看API的时候突然发现Thread类是实现了Runnable的接口的,那么我们在继承Thread类的时候是不是就相当于也实现了Runnable,
就可以像实现了Runnable接口的类一样用喽
上代码:
public class Test3 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Ticket t = new Ticket();
Thread th1 = new Thread(t);
Thread th2 = new Thread(t);
Thread th3 = new Thread(t);
th1.start();
th2.start();
th3.start();
}
}
class Ticket extends Thread
{
int ticket = 100;
Object obj = new Object();
public void run()
{
while(ticket>0)
{
synchronized(obj)
{
if(ticket>0)
System.out.println(Thread.currentThread().getName()+"---"+ticket--);
}
}
}
}
作者:
Rancho_Gump
时间:
2013-2-21 22:54
本帖最后由 张向辉 于 2013-2-21 22:56 编辑
哈哈 想法很有意思 不过Thread实现Runnable接口后,定义了自己特有的成员变量,所以继承Thread类后的对象相对于直接实现Runnable后的对象臃肿的多,造成内存不必要的浪费
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2