如果线程不是new Runnable()而是使用lambada的话三次都会调用计算不走缓存,怎么回事呢?

来源:13-5 用Future解决重复计算问题

qq_SUPERATURL_0

2021-04-12

如果线程不是new Runnable()而是使用lambada的话三次都会调用计算不走缓存,怎么回事呢?就是重复计算问题没解决,

写回答

2回答

悟空

2021-04-12

可以看下这个思路:http://coding.imooc.com/learn/questiondetail/2vGBE6xZZA9YNkaq.html

0
0

悟空

2021-04-12

lambada的并行,如果里面用的是同一个expensiveComputer实例,那么和new Runnable()是一致的。lambada有自己的线程池。

0
2
悟空
回复
小曼巴0
这个我试过了,不是lambda表达式的问题,如果用Runnable对象同样可能有重复计算问题,因为大家是同一时间去做的compute,而且667用不上666的缓存。你试一下在第3次计算前,sleep一下,就会发现,不会重复计算了。
2021-12-30
共2条回复

深度解密Java并发工具,精通JUC,成为并发多面手

JUC全方位讲解,构建并发工具类知识体系

1599 学习 · 573 问题

查看课程