List集合:多线程快速处理

有一个大list集合,遍历进行一些耗时操作,不能达到性能要求,查询日志,单个任务虽然有不少数据库和第三方api请求,比较耗时,但返回效率尚可,所以优先采用多线程方式进行处理并行请求数据库和第三方api,因为处理完还要对list所属的数据进行操作,所以,线程池多线程处理要等待全部处理完。
相关的代码如下:
@testpublic void testtb(){  list  list = new arraylist  ();  for(int i = 0; i  100)  {    int batch = size % 100 == 0 ? size / 100 : size / 100 + 1;    for(int j = 0; j  size)      {        end = size;      }      list  sublist = list.sublist(j * 100, end);      touchworker.execute(() - > sleeptest(sublist));    }    touchworker.shutdown();    while(true)    {      if(touchworker.isterminated())      {        break;      }    }  }  else  {    sleeptest(list);  }}private void sleeptest(list  sublist){  for(string i: sublist)  {    try    {      //耗时操作      system.out.println(###### + i + ###### + thread.currentthread().getname());      //                thread.sleep(1000*30);    }    catch(exception e)    {      e.printstacktrace();    }  }} void shutdown() 启动一次顺序关闭,执行以前提交的任务,但不接受新任务。若已经关闭,则调用没有其他作用。
抛出:securityexception - 如果安全管理器存在并且关闭,此 executorservice 可能操作某些不允许调用者修改的线程(因为它没有保持runtimepermission(modifythread)),或者安全管理器的 checkaccess 方法拒绝访问。
boolean isterminated() 若关闭后所有任务都已完成,则返回true。注意除非首先调用shutdown或shutdownnow,否则isterminated永不为true。返回:若关闭后所有任务都已完成,则返回true。
当然还有一种方法,是之前写的,方法比上边的臃肿了,不过会获取返回结果进行处理:逻辑是获取所有页面的list,多线程遍历list后,将所有页面的违规词查出发送邮件,代码:
/** *  落地页违规词排查(多线程)。 * @return */@testpublic  void getviolationslandpagebythreadpool() {    try {        landpageservice.getviolationslandpagebythreadpool(1年);    } catch (exception e) {        e.printstacktrace();    }}// 开始时间long start = system.currenttimemillis();/*list list = new arraylist();for (int i = 1; i {});*/// 创建一个线程池executorservice exec = executors.newfixedthreadpool(threadnum);// 定义一个任务集合list tasks = new arraylist();callable task = null;list cutlist = null;// 确定每条线程的数据for (int i = 0; i < threadnum; i++) {    if (i == threadnum - 1) {        if (special) {            break;        }        cutlist = list.sublist(threadsize * i, datasize);    } else {        cutlist = list.sublist(threadsize * i, threadsize * (i + 1));    }    // system.out.println(第 + (i + 1) + 组: + cutlist.tostring());    final list liststr = cutlist;    task = new callable() {        @override        public list call() throws exception {//                    system.out.println(thread.currentthread().getname() + 线程: + liststr.get(0).getpageid());             list result = new arraylist();             for (landpage landpage : liststr) {                 long pageid = landpage.getpageid();                 string path = landpage.getpath();                 integer version = landpage.getversion();                 string pageurl = landpage.getpageurl();                 string actualuser = landpage.getactualuser();                 integer pagetype = landpage.getpagetype();                 if (stringutils.isnotblank(path)) {                     // 调用第一个方法,获取html字符串                     string html = httprequest(path);                     // 调用第二个方法,获取包含的违规词                     if(stringutils.isnotblank(html)){                         html = html.replaceall(,);//      string buffer = htmlfiter2(html);                        set bufferset = sensitivewordengine.getsensitiveword(html, 1);// 得到敏感词有哪些,传入2表示获取所有敏感词//sensitivewordfiltering(html);                        /*string[] word = {备案,错过将延误,仅需1980元};                        for(int i=0 ;i results = exec.invokeall(tasks);list result = new arraylist();for (future future : results) {    result.addall(future.get());}// 关闭线程池exec.shutdown();system.out.println(线程任务执行结束);system.err.println(执行任务消耗了 : + (system.currenttimemillis() - start) + 毫秒);system.out.println(共有###########+list.size() ); result就是需要发送邮件的相关结果了


厦门举办首届无人机行业交流,探索无人机的应用蓝海
关于汽车电子ECU的三种形式
我国首次实现对特高压交流变压器套管运行状态的实时监测
微软可能很快将云数据存储在DNA存储中
华为P10评测:麒麟960+EMUI 5.1 注定不凡
List集合:多线程快速处理
如何制作玩具锂电池充电器
VR市场规模比肩智能手机 要颠覆还有两个关键点
三相异步电动机上的故障解决
哪些物联网应用可以减少企业犯错
未来性能增长需依赖架构上改变 因此需要用FPGA进行人工智能硬件加速
锡膏厂家普及锡条一些干货知识?
慧联无限完成数亿元C轮融资,通服资本领投,旷视科技、博将资本、华创资本跟投
最美不过华为荣耀8青春版 最快不过华为荣耀v9 两部手机今天发布!
工业清洗用超声波振动棒
灌封胶产生气泡原因及消除方法
什么是运算放大器/比较器?
中国量产64层3D NAND闪存芯片会带来什么影响
美格智能连续中标中国移动5G模组招标项目
硅晶圆供不应求到进入涨价周期,行业进入量价齐升的高景气度确定