Java多线程安全

package SwingExample;

public class MultiThreadSafe implements Runnable{
private int nTicketCount = 10; // 剩余火车票数量
private String strPurchaserName; // 购票人姓名

public static void main(String[] args) {
// TODO Auto-generated method stub
MultiThreadSafe t = new MultiThreadSafe("man");
t.buyTickets();
}

public void buyTickets() {
// 假定最多支持5个人同时购票
MultiThreadSafe man1 = new MultiThreadSafe("man1");
MultiThreadSafe man2 = new MultiThreadSafe("man2");
MultiThreadSafe man3 = new MultiThreadSafe("man3");
MultiThreadSafe man4 = new MultiThreadSafe("man4");
MultiThreadSafe man5 = new MultiThreadSafe("man5");

Thread t1 = new Thread(man1);
Thread t2 = new Thread(man2);
Thread t3 = new Thread(man3);
Thread t4 = new Thread(man4);
Thread t5 = new Thread(man5);

t1.start();
t2.start();
t3.start();
t4.start();
t5.start();
}

public MultiThreadSafe(String strPurchaserName) {
// TODO Auto-generated constructor stub
this.strPurchaserName = strPurchaserName;
}

@Override
public void run() {
// TODO Auto-generated method stub
while (nTicketCount > 0) {
synchronized("") { // 多线程同步
nTicketCount–;
if (nTicketCount == 0) {
System.out.println(this.strPurchaserName + "前来购票,但票已售完!");
}
else if (nTicketCount > 0) {
System.out.println(this.strPurchaserName + "前来购票,当前余票:" + nTicketCount);
}
else {
System.out.println("余票管理系统异常,请联系系统管理员。");
}
}
try {
Thread.sleep(100);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

}

波比源码 – 精品源码模版分享 | www.bobi11.com
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,请使用WINRAR解压,如遇到无法解压的请联系管理员!

波比源码 » Java多线程安全

发表评论

Hi, 如果你对这款模板有疑问,可以跟我联系哦!

联系站长
赞助VIP 享更多特权,建议使用 QQ 登录
喜欢我嘛?喜欢就按“ctrl+D”收藏我吧!♡