A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 任亚俊 中级黑马   /  2013-12-23 03:17  /  958 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 任亚俊 于 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效率高呢?
哪位给细细的讲一下,谢谢。

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

1 个回复

倒序浏览
1.为什么用单线程池呢,不是很理解?  用线程池为了方便创建线程,1.5新特性,简化代码书写。
2.为什么while放在前面效率低呢,是不是用do while效率高呢?
while实现判断后执行,若用do while就是先执行后判断,减少判断,所以会高一点。

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马