小弟急求一个JAVA编程答案(有运行结果截图)?不胜感激!

来源:百度知道 编辑:UC知道 时间:2024/07/06 23:51:24
多线程的同步控制与线程间的通信:
用synchronized、wait()和notifyAll()完成以下情景
模拟3个人排队买票,每人买一张票。售票员(TicketSeller类)只有1张5元的钱,电影票5元一张。张某拿着1张20元的人民币排在第一,孙某拿着1张10元的人民币排在第二,赵某拿着1张5元的人民币排在第三。
(提示:定义一个售票员TicketSeller类,属性包括5元钱张数fiveNumber、10元钱张数tenNumber和20元钱张数twentyNumber,方法为同步方法卖票sellTicket(int receiveMoney), 创建三个线程张某Zhang、孙某Sun和赵某Zhao,这三个线程共享一个售票员类对象。)

package study.my;

public class TicketSell {

/**
* @param args
* 多线程的同步控制与线程间的通信:
* 用synchronized、wait()和notifyAll()完成以下情景
* 模拟3个人排队买票,每人买一张票。售票员(TicketSeller类)只有1张5元的钱,电影票5元一张。
* 张某拿着1张20元的人民币排在第一,孙某拿着1张10元的人民币排在第二,赵某拿着1张5元的人民币排在第三。
* (提示:定义一个售票员TicketSeller类,属性包括5元钱张数fiveNumber、
* 10元钱张数tenNumber和20元钱张数twentyNumber,方法为同步方法卖票
* sellTicket(int receiveMoney), 创建三个线程张某Zhang、孙某Sun和赵某Zhao,
* 这三个线程共享一个售票员类对象。)
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("售票员: 现在开始售票,开放时间:10秒钟!");
Thread zhang = new Thread(new Zhang());
zhang.start();
Thread sun = new Thread(new Sun());
sun.start();
Thread zhao = new Thread(new Zhao());
zhao.start();
try
{
Thread.sleep(10000);//主线程挂起10秒
}
catch (InterruptedException e) <