Java案例分析

【案例8-2】 Svip优先办理服务

2024-10-25 13 0

简介 1.任务描述 在日常工作生活中,无论哪个行业都会设置一些Svip用户,Svip用户具有超级优先权,在办理业务时,Svip用户具有最大的优先级。 本案例要求编写一个模拟Svip优先办理业务的程序,在正常的业务办理中,插入一个Svip用户,优先为Svip用户办理业务。本案例在实现时,可以通过多线程实现。

【案例8-2  Svip优先办理服务

【案例介绍】

  1.任务描述

在日常工作生活中,无论哪个行业都会设置一些Svip用户,Svip用户具有超级优先权,在办理业务时,Svip用户具有最大的优先级。

本案例要求编写一个模拟Svip优先办理业务的程序,在正常的业务办理中,插入一个Svip用户,优先为Svip用户办理业务。本案例在实现时,可以通过多线程实现。

2.运行结果

运行结果如图8-1所示。

upfile  

8-1 运行结果

【案例目标】

l  学会分析“Svip优先办理服务任务实现的逻辑思路。

l  能够独立完成“Svip优先办理服务程序的源代码编写、编译以及运行。

l  能够在程序中使用多线程的“插队完成逻辑思路。

【案例思路】

(1)     查看运行结果分析后,创建一个special()方法模拟Svip办理业务。

(2)     查看运行结果分析后,首先创建一个normal()方法模拟正常的窗口排队,当有Svip客户是使用join线程让步,调用special()方法优先让Svip办理业务。

(3)     最后在main方法中调用normal()方法。

【案例代码】

Svip优先办理服务程序的代码实现如文件8-1所示。

文件8-1  Svip.java

 1   package chapter0802;

 2   public class Svip {

 3       public static void main(String[]args) throws InterruptedException

 4       {

 5           new Thread(new normal()).start();

 6       }

 7       }

 8       class special extends Thread{

 9       public void run()

 10      {

 11          System.out.println("svip客户开始办理业务");

 12          System.out.println("svip客户办理业务的倒计时");

 13          for(int i=10;i>=0;i--)

 14          {

 15              System.out.println(i+"");

 16              try {

 17                  Thread.sleep(1000);

 18              } catch (InterruptedException e) {

 19                  e.printStackTrace();

 20              }

 21          }

 22          System.out.println("svip客户办理完毕");

 23      }

 24      }

 25      class normal extends Thread{

 26      public void run(){

 27          System.out.println("业务办理窗口在正常排队中");

 28            System.out.println("此时来了一位svip客户");

 29              Thread t=new Thread(new special());

 30               //各走各的逻辑错误,再加入join先执行完special,再执行normal剩下的

 31              t.start();

 32              try {

 33                  t.join();

 34              } catch (InterruptedException e) {

 35                  e.printStackTrace();

 36              }

 37              System.out.println("业务办理窗口又恢复正常排队");

 38      }

 39      }

文件8-1中第8~24行代码是svip客户办理业务,使用for循环10次模拟办理业务;第25~39行代码是模拟窗口正常排队,第32~35行代码是normal线程让步special线程。


点赞 0

文章评论

欢迎您:

阿文博客

人生的价值,并不是用时间,而是用深度量去衡量的。——列夫·托尔斯泰

69 文章 1879 浏览 0 评论