在同一条流上调用两个终端操作后没有抛出IllegalStateException的原因可能是因为流的终端操作是按照顺序执行的,而不是并行执行的。终端操作是流操作的最后一步,它会触发流的遍历和处理,生成最终的结果。当我们在同一条流上调用两个终端操作时,第一个终端操作会完全执行并生成结果,然后才会执行第二个终端操作。
在流的终端操作执行期间,流会进入终止状态,此时再调用其他终端操作会抛出IllegalStateException异常。但是,如果我们在同一条流上按顺序调用多个终端操作,每个终端操作都会在前一个终端操作执行完毕后立即执行,因此不会抛出IllegalStateException异常。
需要注意的是,如果我们在同一条流上调用两个终端操作,而其中一个终端操作依赖于另一个终端操作的结果,那么我们需要确保它们的顺序是正确的,否则可能会导致意料之外的结果。
总结起来,同一条流上调用两个终端操作不会抛出IllegalStateException的原因是终端操作按顺序执行,而不是并行执行。这样的设计可以提高代码的可读性和可维护性,同时也避免了并发访问的竞态条件问题。
腾讯云相关产品和产品介绍链接地址:
没有搜到相关的沙龙
领取专属 10元无门槛券
手把手带您无忧上云