Java多线程买票的实例

本文展示了一个使用Java实现的简单售票系统示例。通过多线程环境下利用synchronized关键字来确保线程安全,演示了如何同步访问共享资源并防止竞态条件。三个线程同时尝试减少票数,每卖出一张票都会输出相关信息。
package com.lj.thread;

public class SellThread implements Runnable
{

private int number;
String s=new String();

SellThread(){
number=100;

}


@Override
public void run()
{
while(number>0){
synchronized (s)
{
if(number>0){
System.out.println("第"+number+"人在"+Thread.currentThread().getName()+"买票");

number--;
}
}

try
{
Thread.sleep(1000);
}
catch (InterruptedException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}



}

public static void main(String[] args)
{
SellThread st=new SellThread();
Thread th1=new Thread(st);
th1.start();
Thread t2=new Thread(st);
t2.start();

Thread t3=new Thread(st);
t3.start();
}

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值