Java8新增了很多新特性,其中包括stream的操作,非常实用,但是用的过程中也要注意避坑。
比如我前端时间写了代码,用stream().parallel().forEach(),这个parallel是可以让循环并行的,提高了程序的效率。但是在我使用它往一个list中设置值的时候,发现了问题。由于是多线程异步运行,所以循环可能并不保证全部运行完才进行下一步,所以如果在循环之后对list有其他操作,可能这个list并不完整,这样得到的数据就会有问题。
所以正确的做法是,如果循环后面没有操作,只是需要在循环体内进行操作的话,用parallel可以提高效率。但是如果循环后面要对循环里面设置的值做操作,就不能使用parallel了。
喜欢本文的朋友不要忘记点一个免费的赞哦,你的赞将是我最大的动力。