初识多线程以及遇到的实际问题

慎用Java stream 的parallel

对于Java新手来说,Java的 stream提供的parallel是一个不小的坑。项目中遇到有人在使用,task为sleep一段时间。结果就是程序跑起来会不定期出现阻塞。

Java stream的parallel底层实现

有一种线程池叫ForkJoinPool,基本思想是实现一个“work stealing“算法,java stream的 parallel在底层都是用这样的一个static的pool来提交task,thread数与可用cpu 核心数有关。项目中所有用到stream的地方都用这个pool。

解决问题

偏偏用这个parallel的时候task是sleep一段时间,所以会经常阻塞。最后用常用线程池解决。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值