毕老师在讲线程的时候,创建线程的第一种方式是继承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--);
}
}
}
}
|