• 线程执行测试效果


    目录

    前言描述:

    主要得线程代码

    测试的地方里面的方法体进行的逻辑处理

    调用的时候:


    前言描述:

    主要是执行线程进行同步,简单的一个线程,后来废弃掉了,所以代码备份到这里

    主要得线程代码

    1. @Data
    2. private class SendCorpusRunnable implements Runnable {
    3. private Long newsId;
    4. private List eventInfoList;
    5. private Map> eventTagsMap;
    6. public SendCorpusRunnable(Long newsId, List eventInfoList,
    7. Map> eventTagsMap) {
    8. this.newsId = newsId;
    9. this.eventInfoList = eventInfoList;
    10. this.eventTagsMap = eventTagsMap;
    11. }
    12. @Override
    13. public void run() {
    14. try {
    15. NewsEventVo newsEventVo = TbmEventConvert.convertToCorpus(newsId, eventInfoList, eventTagsMap);
    16. newsEventFacade.save(newsEventVo);
    17. } catch (CorpusException e) {
    18. e.printStackTrace();
    19. }
    20. }
    21. }

    测试的地方里面的方法体进行的逻辑处理

    1. /**
    2. * 转换推送语料数据
    3. *
    4. * @param eventInfoList
    5. * @return
    6. */
    7. public static NewsEventVo convertToCorpus(Long newsId, List eventInfoList, Map> eventTagsMap) {
    8. NewsEventVo newsEventVo = new NewsEventVo();
    9. newsEventVo.setNewsId(newsId);
    10. if (CollectionUtils.isEmpty(eventInfoList)) {
    11. return newsEventVo;
    12. }
    13. List eventCalloutVoList = new ArrayList<>();
    14. eventInfoList.forEach(eventInfo -> {
    15. NewsEventVo.EventCalloutVo eventCalloutVo = new NewsEventVo.EventCalloutVo();
    16. if (StringUtils.isNotBlank(eventInfo.getEventFourthLevelCode())) {
    17. eventCalloutVo.setEventCode(eventInfo.getEventFourthLevelCode());
    18. }
    19. if (StringUtils.isNotBlank(eventInfo.getEventFourthLevel())) {
    20. eventCalloutVo.setEventName(eventInfo.getEventFourthLevel());
    21. }
    22. if (StringUtils.isNotBlank(eventInfo.getEventBasis())) {
    23. eventCalloutVo.setEventBasis(eventInfo.getEventBasis());
    24. }
    25. //提取标签主体
    26. List eventTagList = eventTagsMap.get(eventInfo.getId());
    27. List subjectList = new ArrayList<>();
    28. if (!CollectionUtils.isEmpty(eventTagList)) {
    29. eventTagList.forEach(eventTag -> {
    30. NewsEventVo.EventSubjectVo eventSubjectVo = new NewsEventVo.EventSubjectVo();
    31. eventSubjectVo.setSubjectName(eventTag.getTagName());
    32. if (StringUtils.isNotBlank(eventTag.getMainBasis())) {
    33. eventSubjectVo.setSubjectBasis(eventTag.getMainBasis());
    34. }
    35. subjectList.add(eventSubjectVo);
    36. });
    37. }
    38. eventCalloutVo.setSubjectList(subjectList);
    39. eventCalloutVoList.add(eventCalloutVo);
    40. });
    41. newsEventVo.setEventList(eventCalloutVoList);
    42. return newsEventVo;
    43. }

    调用的时候:

    1. // 发送语料平台,异步
    2. ThreadPoolExecutor threadPoolExecutor = ThreadPoolExecutorFactory.getThreadPoolExecutor();
    3. threadPoolExecutor.submit(new SendCorpusRunnable(newsId, tbmPopularFeelingsList, eventTagsMap));
    1. // 发送语料平台,异步
    2. ThreadPoolExecutor threadPoolExecutor = ThreadPoolExecutorFactory.getThreadPoolExecutor();
    3. threadPoolExecutor.submit(new SendCorpusRunnable(newsId, tbmPopularFeelingsList, eventTagsMap));

  • 相关阅读:
    图像的傅里叶变换
    Openssl 1.1.x android编译
    c语言-手撕多级时间轮定时器(纯手写)
    基于多设计模式下的同步&异步日志系统
    贪心法解决背包问题
    Vite3 + Svelte3使用@import导入scss样式
    一次XGBoost性能优化-超线程影响运算速度
    艾芬医生事件解析
    数据清洗(data clean)
    c++征途 --- STL初识
  • 原文地址:https://blog.csdn.net/m0_59252007/article/details/126244502