-
package test12.Ticket;
/**
* 程序: 用卖票的例子实现一个简单的多线程。线程通过继承Thread类完成
*/
public class SellTicket extends Thread
{
int num = 0;
int ticket = 50; //最多50张票
public SellTicket(String name)
{
setName(name);
}
@Override
public void run() {
for(int i=0;i<200;i++)
{
if(num++ < ticket)
System.out.println(getName()+"卖出第"+num+"张票");
}
}
}14分钟前
-
package test12.Ticket;
/**
* 程序: 用卖票的例子实现一个简单的多线程。线程通过实现Runnable接口完成
*/
public class SellTicketRunn implements Runnable
{
int num = 0;
int ticket = 50; //最多50张票
@Override
public void run() {
for(int i=0;i<200;i++)
{
if(num++ < ticket){
System.out.println(Thread.currentThread().getName()+"卖出第"+num+"张票");
}
}
}
}14分钟前
-
package test12.Ticket;
public class MainTest {
public static void main(String[] args)
{
/**
* 两种实现线程方式的对比:
*
* 使用继承方式,资源不能共享;
* 继承方式,继承了Thread类之后,就不能再继承其它类了;实现接口方式还可以继承其它类
* 从代码的简单性来说,继承方式简单些
*
* 推荐使用接口方法,方便以后拓展,资源共享
*/
//继承Thread
SellTicket st1 = new SellTicket("A窗口");
SellTicket st2 = new SellTicket("B窗口");
SellTicket st3 = new SellTicket("C窗口");
//三个窗口 三个线程
// st1.start();
// st2.start();
// st3.start();
//实现接口
SellTicketRunn str1 = new SellTicketRunn();
SellTicketRunn str2 = new SellTicketRunn();
SellTicketRunn str3 = new SellTicketRunn();
new Thread(str1,"A窗口").start();
new Thread(str2,"B窗口").start();
new Thread(str3,"C窗口").start();
}
}14分钟前
-
接口实现的那段程序 run()处报错The method run()