线程:售票小测试

情景一:四个窗口各售票100张。

代码实现:

class Ticket extends Thread 
{
	public int ticket=100;
	
	Ticket(String name){
		super(name);
	}
	public void run(){
		while(true){
			if(ticket>0){
				System.out.println(this.getName()+"..."+(ticket--));
			}else break;
		}
	}
}
class TicketDemo2
{
	public static void main(String[] args) 
	{
		Ticket t1=new Ticket("一号窗口");
		Ticket t2=new Ticket("二号窗口");
		Ticket t3=new Ticket("三号窗口");
		Ticket t4=new Ticket("四号窗口");
		t1.start();
		t2.start();
		t3.start();
		t4.start();
	}
}

输出样例:

一号窗口...100
一号窗口...99
一号窗口...98
一号窗口...97
一号窗口...96
一号窗口...95
一号窗口...94
四号窗口...100
二号窗口...100
三号窗口...100
二号窗口...99
四号窗口...99

...

情景二:四个窗口共售票100张。

方法一:

class Ticket extends Thread 
{
	public static int ticket=100;
	public void run(){
		while(true){
			if(ticket>0){
				System.out.println(Thread.currentThread().getName()+"..."+(ticket--));
			}else break;
		}
	}
}
class TicketDemo
{
	public static void main(String[] args) 
	{
		Ticket t1=new Ticket();
		Ticket t2=new Ticket();
		Ticket t3=new Ticket();
		Ticket t4=new Ticket();
		t1.start();
		t2.start();
		t3.start();
		t4.start();
	}
}

 方法二:

class Ticket implements Runnable 
{
	public int ticket=100;
	public void run(){
		while(true){
			if(ticket>0){
				System.out.println(Thread.currentThread().getName()+"..."+(ticket--));
			}else break;
		}
	}
}
class TicketDemo3
{
	public static void main(String[] args) 
	{
		Ticket t=new Ticket();
		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();
	}
}

样例输出: 

Thread-0...99
Thread-0...97
Thread-0...96
Thread-2...100
Thread-1...98
Thread-1...93
Thread-3...99
...
//可以看到0窗口和3窗口都售出了票号有99的票。
//产生这样的原因是:
//线程0后运行,线程3先运行。
//当线程0都打印出来后,线程3还没有打印出来。所以出现了两个99.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
目录 第一章. 概述 1 1.1概述 1 1.2意义 1 1.3任务 1 第二章. 系统的可行性研究与需求分析 2 2.1可行性研究 2 2.1.1经济可行性 2 2.1.2技术可行性 2 2.1.3操作可行性 2 2.2需求分析 2 2.2.1功能需求 2 2.2.2数据需求 3 2.2.3性能需求 3 2.2.4数据库逻辑结构 6 第三章. 系统的总体设计 7 3.1系统软件结构设计 7 3.1.1软件结构 7 3.2系统流程图 9 第四章. 系统的详细设计 10 4.1.1程序流程图 11 第五章. 系统的实现与调试 18 5.1应用系统的开发及测试 18 5.1.1系统首页 18 5.1.2用户登录及访问权限 19 5.1.3车次信息查询 21 5.1.4售票 21 5.15退票 22 结束语 23 致谢.....................................................................24 参考文献 25 附录A...............................................................................26附录B...............................................................................30 附录C............................................................................. 32 附录 登陆窗 #region Windows 窗体设计器生成的代码 private void InitializeComponent() { this.lblID = new System.Windows.Forms.Label(); this.lblPassWord = new System.Windows.Forms.Label(); this.cbSelect = new System.Windows.Forms.ComboBox(); this.lblSelect = new System.Windows.Forms.Label(); this.txtID = new System.Windows.Forms.TextBox(); this.txtPassWord = new System.Windows.Forms.TextBox(); this.btnCancel = new System.Windows.Forms.Button(); this.label1 = new System.Windows.Forms.Label(); this.skinEngine1 = new Sunisoft.IrisSkin.SkinEngine(((System.ComponentModel.Component)(this))); this.btnEnter = new System.Windows.Forms.Button(); this.SuspendLayout(); // LoginForm // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.AutoValidate = System.Windows.Forms.AutoValidate.EnablePreventFocusChange; this.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; this.ClientSize = new System.Drawing.Size(322, 312); this.Controls.Add(this.label1); this.Controls.Add(this.btnCancel); this.Controls.Add(this.btnEnter); this.Controls.Add(this.txtPassWord); this.Controls.Add(this.txtID); this.Controls.Add(this.lblSelect); this.Controls.Add(this.cbSelect); this.Controls.Add(this.lblPassWord); this.Controls.Add(this.lblID); this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Fixed3D; this.MaximumSize = new System.Drawing.Size(332, 348); this.MinimumSize = new System.Drawing.Size(332, 348); this.Name = "LoginForm"; this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; this.Text = "登录界面"; this.Load += new System.EventHandler(this.Login_Load); this.ResumeLayout(false); this.PerformLayout(); } } } 附录B 主界面 namespace TicketMana { partial class SellerForm { /// /// 必需的设计器变量。 /// private System.ComponentModel.IContainer components = null; namespace TicketMana { partial class SellTicketForm { /// /// 必需的设计器变量。 /// private System.ComponentModel.IContainer components = null; /// /// 清理所有正在使用的资源。 /// /// 如果应释放托管资源,为 true;否则为 false。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值