zoukankan      html  css  js  c++  java
  • Java 多线程练习7:模拟网络购票

    需求:

     1 package GouPiao;
     2 
     3 /**
     4  * 模拟网络延时线程不安全 
     5  */
     6 public class Site implements Runnable {
     7     private int count = 10; // 记录剩余票数
     8     private int num = 0; // 记录买到第几张票
     9     private boolean flag = false;  //记录是否售完
    10 
    11     public void run() {
    12         while (true) {
    13             if(!sale()){
    14             break;
    15             }
    16         }        
    17     }
    18     // 同步方法:卖票
    19     public synchronized boolean sale() {    
    20         if (count <= 0) {
    21             return false;
    22         }
    23         // 第一步:修改数据
    24         num++;
    25         count--;
    26         try {
    27             Thread.sleep(500); // 模拟网络延时
    28         } catch (InterruptedException e) {
    29             e.printStackTrace();
    30         }
    31         // 第二步:显示信息
    32         System.out.println(Thread.currentThread().getName() + "抢到第" + num
    33                 + "张票,剩余" + count + "张票!");
    34        if(Thread.currentThread().getName().equals("黄牛党")){
    35            return false;
    36        }
    37        return true;
    38         
    39     }
    40 }
    Site
     1 package GouPiao;
     2 /*
     3  *测试类 
     4  * 
     5  */
     6  
     7 public class Test {
     8     public static void main(String[] args) {
     9         Site site = new Site();
    10         Thread person1= new Thread(site,"桃跑跑");
    11         Thread person2= new Thread(site,"张票票");
    12         Thread person3= new Thread(site,"黄牛党");
    13         person1.start();
    14         person2.start();
    15         person3.start();
    16     }
    17 }
    Test

    运行结果:

  • 相关阅读:
    C#面向对象编程基础-喜课堂笔记
    [爬虫]通过url获取连接地址中的数据
    第10季asp.net基础
    初学MVC
    学习MVC遇到的问题
    飞行棋小项目
    JAVAscript学习笔记
    iOS 清除xcode缓存和生成文件
    Access用OleDbParameter更新/插入数据
    SQLite动态库下载
  • 原文地址:https://www.cnblogs.com/jingkai555/p/11309979.html
Copyright © 2011-2022 走看看