-------
android培训、
java培训、期待与您交流! ----------
-
多线程售票系统:
通过四个窗口卖票,一共有100张票,
卖票的动作被四个窗口同时使用。
需要多线程
====== 2 用Runnable接口的方式====
Runnable避免了单继承的局限性,不用继承。
1,定义一个类实现的Runnable接口。
2,覆盖Runnable借口中的run方法。
将线程要运行的代码存储到run方法中。
3,创建该接口的子类对象
4, 通过Thread类进行线程的创建,并将Runnable接口的子类对象作为Thread类的构造函数的实参进行传递。
为什么要传递呢?
让线程创建对象时,就要明确要运行哪个run()方法,而这run()方法是需要被对象调用的
所以将run方法所属的对象传递给Thread类的构造函数。
5,调用Thread类中的start方法开启线程。
----------------------------
Runnable接口地方
*/
class Ticket implements Runnable
{
private int num=100;
public void run()
{
while(true)
{
if(num>0)
{
try{
Thread.sleep(10);
}
catch(InterruptedException e){
}
System.out.println(Thread.currentThread().getName()+"…………sale…………"+num--);
}
}
}
}
class TicketRunnable
{
public static void main(String[] args)
{
Ticket t=new Ticket();
//创建线程对象,并将对象作为Thread类的构造函数进行实参传递
Thread t1=new Thread(t);
Thread t2=new Thread(t);
Thread t3=new Thread(t);
Thread t4=new Thread(t);
t1.start();
t2.start();
t3.start();
t4.start();
}
}
-
多线程售票系统:
通过四个窗口卖票,一共有100张票,
卖票的动作被四个窗口同时使用。
需要多线程
====== 2 用Runnable接口的方式====
Runnable避免了单继承的局限性,不用继承。
1,定义一个类实现的Runnable接口。
2,覆盖Runnable借口中的run方法。
将线程要运行的代码存储到run方法中。
3,创建该接口的子类对象
4, 通过Thread类进行线程的创建,并将Runnable接口的子类对象作为Thread类的构造函数的实参进行传递。
为什么要传递呢?
让线程创建对象时,就要明确要运行哪个run()方法,而这run()方法是需要被对象调用的
所以将run方法所属的对象传递给Thread类的构造函数。
5,调用Thread类中的start方法开启线程。
----------------------------
Runnable接口地方
*/
class Ticket implements Runnable
{
private int num=100;
public void run()
{
while(true)
{
if(num>0)
{
try{
Thread.sleep(10);
}
catch(InterruptedException e){
}
System.out.println(Thread.currentThread().getName()+"…………sale…………"+num--);
}
}
}
}
class TicketRunnable
{
public static void main(String[] args)
{
Ticket t=new Ticket();
//创建线程对象,并将对象作为Thread类的构造函数进行实参传递
Thread t1=new Thread(t);
Thread t2=new Thread(t);
Thread t3=new Thread(t);
Thread t4=new Thread(t);
t1.start();
t2.start();
t3.start();
t4.start();
}
}
本文介绍了一个基于Java的多线程售票系统实现方案。通过四个窗口并发出售100张票,演示了如何利用Runnable接口来避免单继承的限制,并展示了具体的代码实现过程。
925

被折叠的 条评论
为什么被折叠?



