扫码关注官方订阅号
比如现在用户表有100000条记录,现在要向这些用户发送邮件,如何快速的使其发送完成.
认证0级讲师
将所有记录放到 ConcurrentLinkedQueue 中,然后使用多个线程(使用线程池)共享这个 ConcurrentLinkedQueue,每个线程每次从 ConcurrentLinkedQueue 中取出一条记录并发送邮件,直到队列为空 (即 isEmpty() 返回 true)
我不太明白你的问题,看这个描述,直接开始n个并发的任务就可以了,如果你要发完了做点事情,jdk提供的倒计时器或者栅栏都支持。还是你考虑的jvm的内存占用,同时1000000万条会搞掉你的内存堆。
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
将所有记录放到 ConcurrentLinkedQueue 中,然后使用多个线程(使用线程池)共享这个 ConcurrentLinkedQueue,每个线程每次从 ConcurrentLinkedQueue 中取出一条记录并发送邮件,直到队列为空 (即 isEmpty() 返回 true)
我不太明白你的问题,看这个描述,直接开始n个并发的任务就可以了,如果你要发完了做点事情,jdk提供的倒计时器或者栅栏都支持。
还是你考虑的jvm的内存占用,同时1000000万条会搞掉你的内存堆。