黑马程序员技术交流社区

标题: 对银行业务调度start方法的疑问 [打印本页]

作者: 任亚俊    时间: 2013-12-23 03:17
标题: 对银行业务调度start方法的疑问
本帖最后由 任亚俊 于 2013-12-23 22:06 编辑
  1.         public void start(){
  2.                 Executors.newSingleThreadExecutor().execute(
  3.                                 new Runnable(){
  4.                                         public void run(){
  5.                                                 //下面这种写法的运行效率低,最好是把while放在case下面
  6.                                                 while(true){
  7.                                                         switch(type){
  8.                                                                 case COMMON:
  9.                                                                         commonService();
  10.                                                                         break;
  11.                                                                 case EXPRESS:
  12.                                                                         expressService();
  13.                                                                         break;
  14.                                                                 case VIP:
  15.                                                                         vipService();
  16.                                                                         break;
  17.                                                         }
  18.                                                 }
  19.                                         }
  20.                                 }
  21.                 );
  22.         }
复制代码
对于上面代码,我有两个地方不懂,1.为什么用单线程池呢,不是很理解?
2.为什么while放在前面效率低呢,是不是用do while效率高呢?
哪位给细细的讲一下,谢谢。


作者: 776699    时间: 2013-12-23 09:25
1.为什么用单线程池呢,不是很理解?  用线程池为了方便创建线程,1.5新特性,简化代码书写。
2.为什么while放在前面效率低呢,是不是用do while效率高呢?
while实现判断后执行,若用do while就是先执行后判断,减少判断,所以会高一点。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2