⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 client.java

📁 主要考察的是资源池的设计和实现
💻 JAVA
字号:
import org.omg.CORBA.ORB;
import ClientImpl.*;
import Bank.*;
import java.text.DecimalFormat;
import java.util.Random;

public class Client {
    
    private int totaltimes = ClientConfigure.getTotalsamples();
    private int samples = ClientConfigure.getSamples();
    private DecimalFormat formatter;
    private Random random;
    private ClientLog log;
	
    public Client(){
        formatter=(DecimalFormat)DecimalFormat.getInstance();
        formatter.applyPattern("0000000000");
        random=new Random();
        
    
    }

	public static void main(String[] args)throws Exception {
		//java Client 10000 500 hittest
        String operation=null;
        if(args.length!=0){
            if(args.length==3)
            {
             ClientConfigure.setSamples(Integer.parseInt(args[0]),Integer.parseInt(args[1]));
             operation=args[2];
            }
            else{
                
                System.out.println("args error\n");
            }
         }
        Client c=new Client();
        if(operation.equalsIgnoreCase("hittest")){      
            System.out.println("HitTest\n");
            c.hittest(args);
        
        }
        else{
            System.out.println("MissTest\n");
            c.misstest(args);
           
        }
    }

    public void hittest(String[] args){
        log=new ClientLog("Hit");
        ORB orb=ORB.init(args,null) ;    
        AccountManager manager = AccountManagerHelper.bind(orb,"/BankPOA","BankManager".getBytes());
        int count = this.totaltimes/this.samples;
        Account account;
        int i=0,p;
        String id;
        long start;
        while(i<count){
        start =System.currentTimeMillis();
        
        for(p=0;p<samples;++p)
        {
            id=formatter.format(random.nextInt(10000)+1);
            System.out.println(id);
            
            try {
                account=manager.getAccountById(id);
                System.out.println(account.getBalance()+"\n");
                account.deposit(100);
                account.withdraw(50);
                System.out.println(account.getBalance()+"\n");
            } catch (UserNotExitsException e) {
                System.out.println("User Not Exists\n");
            }
            catch(Exception e)
            {
            e.printStackTrace();    
            }
        }
        log.Record(Long.toString((System.currentTimeMillis()-start)));
        ++i;
        }
        log.close();
    }

    public void misstest(String[] args){
        log = new ClientLog("Miss");
        ORB orb=ORB.init(args,null) ;    
        AccountManager manager =AccountManagerHelper.bind(orb,"/BankPOA","BankManager".getBytes());
        int count=this.totaltimes/this.samples;
        Account account;
        int i=0,p;
        String id;
        long start;
        while(i<count){
        start=System.currentTimeMillis();
        for(p=0;p<samples;++p)
        {
            id=formatter.format(random.nextInt(1000000) / 100.0);
            id=id.substring(3);
            System.out.println(id);
            
            try {
                account=manager.getAccountById(id);
                System.out.println(account.getBalance()+"\n");
                account.deposit(100);
                account.withdraw(50);
                System.out.println(account.getBalance()+"\n");
            } catch (UserNotExitsException e) {
                System.out.println("User Not Exists\n");
            }
            catch(Exception e)
            {
            e.printStackTrace();    
            }
        }
        log.Record(Long.toString((System.currentTimeMillis()-start)));
        ++i;
        }
        log.close();
    }
    
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -