多线程执行代码块

本文探讨了Java多线程中的ExecutorService和ThreadPoolExecutor的使用,包括不同类型的线程池优缺点。通过实例展示了如何利用LinkedBlockingQueue进行线程间的数据传递,并分析了在多线程场景下可能遇到的问题。最后提到了流式查询在处理大量数据时的作用。
摘要由CSDN通过智能技术生成

有关使用总结参考了这位前辈的(前人栽树后人乘凉呀~

至于自己这个……只是方便自己用的,希望以后链接别没了吧。
(话说CSDN好多angular的帖子都找不到了)

一、ExecutorService

先上代码块

ExecutorService executorService = Executors.newFixedThreadPool(5);
        while (循环条件) {
            executorService.execute(() -> {
                执行内容;
            });
        }

试了试,插入本地数据库十万条数据,单线程比多线程耗时多了4倍,刚接触多线程的萌新觉得好牛逼啊!

Executors工厂创建线程池
newCachedThreadPool
创建一个可缓存线程池
优点:很灵活,弹性的线程池线程管理,用多少线程给多大的线程池,不用后及时回收,用则新建
缺点:一旦线程无限增长,会导致内存溢出。
newFixedThreadPool
优点:创建一个固定大小线程池,超出的线程会在队列中等待。
缺点:不支持自定义拒绝策略,大小固定,难以扩展
newScheduledThreadPool

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值