一个对象要先后执行两个费时的方法(比如是A()和B()方法,不是紧接着执行),要求client能继续执行它后面的代码,并且能随时知道任一方法执行的进度和完成情况,client有可能先执行B(),但B()的执行必须在A()完成之后如何最佳的设计对象,client和流程?

解决方案 »

  1.   

    public void run(){
       while(true){
          if(A_mutex){
             B(){
                B_mutex = false;
                B_flag++;
                System.out.println(B_flag+"%");
                B_mutex = true;
             }
          }
          if(B_mutex){
             A(){
                A_mutex = false;
                A_flag++;
                System.out.println(A_flag+"%");
                A_mutex = true;
             }  
          }
       }
    }
      

  2.   

    tanghuan() 
    明明是个线程问题,你却说成是状态机,不要欺负我不懂状态机