同时跑list

@Slf4j
@Component
public class Test {//引入mapper@Autowiredprivate XXXMapper xxxMapper;private static Test layoutNumUtils;@PostConstructpublic void init(){layoutNumUtils = this;layoutNumUtils.xxxMapper = this.xxxMapper;}//引入mapper结束/*** 多线程处理list** @param data  数据list* @param threadNum  线程数*/public synchronized void handleList(List<Info> data, int threadNum) {int length = data.size();if (length<threadNum){log.info("当前线程数大于总数,默认使用总数数量的线程数");threadNum = length;}if (length == 0){log.info("当前无需运行的数据,默认使用1个线程数");threadNum = 1;}int tl = length % threadNum == 0 ? length / threadNum : (length/ threadNum + 1);
//给每个线程分配线程数for (int i = 0; i < threadNum; i++) {int end = (i + 1) * tl;HandleThread thread = new HandleThread("线程[" + (i + 1) + "] ",  data, i * tl, end > length ? length : end);thread.start();}}class HandleThread extends Thread {private String threadName;private List<DemoInfo> data;private int start;private int end;@Autowiredprivate ServiceImpl service;public HandleThread(String threadName, List<DemoInfo> data, int start, int end) {this.threadName = threadName;this.data = data;this.start = start;this.end = end;}@Overridepublic void run() {//业务代码List<Info> subList = data.subList(start, end);System.out.println(threadName+"处理了"+subList.size()+"条!");}}
//    public static void main(String[] args) {//
//        Test test = new Test();
//        // 准备数据
//        DemoServiceImpl service = new DemoServiceImpl();
//        List<Info> list = service.getAll();
//        System.out.println(list);
//        test.handleList(list, 5);
//        System.out.println(list);
//    }

如何启动单线程实现多线程效果及保证安全?相关推荐

  1. Redis 5.0.8+常见面试题(单线程还是多线程、先更新缓存还是数据库、雪崩穿透击穿解决办法...)

    Redis 6.0 保姆级教程(含微服务案例与完整面试题):https://www.yuque.com/yuxuandmbjz/redis Redis是单线程还是多线程 ?为什么这么设计 ? Redi ...

  2. 【Redis】到底是单线程还是多线程以及Redis为什么这么快?

    文章目录 Redis到底是单线程还是多线程的? Redis为什么是单线程的? Redis为什么基于内存? 为什么要为Redis绑定某一固定CPU? Redis的多线程情况 Redis的单线程到底有多快 ...

  3. C++多线程之间,线程函数启动之后,多线程依赖的启动和线程唤醒操作。

    C++多线程之间,线程函数启动之后,线程间依赖的启动和唤醒操作 一.原理分析 1. 线程依赖关系 二. 实例分析 2.1 多线程启动 2.2 多线程模式讲解 (1) 多线程开启与主线程唤醒 (2)单线 ...

  4. 关于python的单线程和多线程

    单线程 比如两件事,要相继执行,而不是一起执行 '''学习一下单线程和多线程的问题'''from time import ctime,sleep '''单线程''' print('单线程开始:') d ...

  5. Redis 属于单线程还是多线程?不同的版本有什么区别?

    Redis 是普及率最高的技术之一,同时也是面试中必问的一个技术模块,所以从今天开始我们将从最热门的 Redis 面试题入手,更加深入的学习和了解一下 Redis. 我们本文的面试题是 Redis 属 ...

  6. java实现tcp服务器(单线程、多线程)、客户端

    全栈工程师开发手册 (作者:栾鹏) java教程全解 java实现tcp服务器(单线程.多线程).客户端. 服务器端接收客户申请,响应时间戳和用户源字符串. 客户端使用控制台作为输入输出流 tcp服务 ...

  7. javasript的单线程和多线程

    前置知识了解 一.解释程序.进程.线程 程序:顾名思义啦,就是比如CSDN.wechat.微博都是一个独立的程序 进程:进程就是我们独立运行的一个程序,进程拥有独立运行所需要的全部资源,主要负责资源的 ...

  8. zookeeper的c API 单线程与多线程问题 cli_st和cli_mt

    同样的程序,在centos和ubuntu上都没有问题,在solaris上问题却多多,据说是solaris管理更加严格. zookeeper_init方法,在传入一个错误的host也能初始化出一个非空的 ...

  9. java单线程和多线程的区别

    1.单线程和多线程的区别? 你早上上班,正要打卡的时候,手机响了..你如果先接了电话,等接完了,在打卡,就是单线程. 如果你一手接电话,一手打卡.就是多线程. 这两件事的结果是一样的..你接了电话且打 ...

最新文章

  1. 通过ObjectMapper将实体转成字符串 ,将 用json存的的list 回转list
  2. HDU 4587 TWO NODES(割两个点的最大连通分支数)
  3. 网工路由基础(4)EIGRP协议
  4. if var matlab,matlab中if 语句后面的判别式不能是算术表达式?或者说变量?
  5. Android中图片优化之webp使用
  6. 大姐,你是不是得了尿频?
  7. c#屏幕录制(经典)(含源码和AForge.Video.FFMPEG.DLL)及填坑办法
  8. 为什么虚拟助手的前途一片光明
  9. CVE-2020-1472复现与完整利用
  10. 计算机上的小键盘,电脑小键盘关闭方法有哪些 小键盘上的六个键都有什么用...
  11. HTML5实现简单留言板1
  12. 2016 清华 计算机 考研 经验 总结
  13. 怎么把网页添加到公众号里
  14. 可可直播电视---开通论坛
  15. linux能修改用户的权限,linux怎样修改用户权限
  16. TTS中的stop_tokens
  17. 利用tshark对网络数据包做进一步的分析
  18. python打开本地浏览器_python如何实现打开浏览器
  19. 在黑马的两个月培训的感受
  20. fastadmin列表页展示分类名称通用搜索按分类名称搜索

热门文章

  1. 推荐几款实用的内网穿透工具
  2. 以一例教你找到【无水印】【高清】【百度图片】的url
  3. windows10 freeswitch soundtouch 变声
  4. 将Windows10设置为UTF8编码格式
  5. 输入某年某月然后输出当前月份的天数
  6. 【控制工程】啥是控制工程?拉开控制工程的帷幕
  7. uview tabs标签根据文字长度占不同的宽
  8. openwrt软路由实现ipv6 nat 上网配置
  9. Python开发《外星人入侵》游戏项目,付详细代码和注释
  10. 计算机组成原理概念学习DAY3——内部存储器