Scala ZIO在并行操作中与CAT互操作

Scala ZIO在并行操作中与CAT互操作,scala,zio,Scala,Zio,ZIO不依赖于Cats,因此它有自己的方法来执行sequence操作:ZIO.sequencePar和ZIO.sequence 我尝试将interop提供的sequence与Cats一起使用,其工作方式与ZIO.sequence相同: import zio._ import zio.interop.catz._ import cats.implicits._ val t1: Task[Int] = ??? val t2: Task[Int] = ??? val t3: Task[Int]

ZIO
不依赖于
Cats
,因此它有自己的方法来执行
sequence
操作:
ZIO.sequencePar
ZIO.sequence

我尝试将interop提供的
sequence
Cats
一起使用,其工作方式与
ZIO.sequence
相同:

import zio._
import zio.interop.catz._
import cats.implicits._ 

val t1: Task[Int] =  ???
val t2: Task[Int] =  ???
val t3: Task[Int] =  ???

val seq = List(t1,t2,t3).sequence // <-- t1,t2,t3 are executed sequentially 

(new DefaultRuntime {}).unsafeRun(seq)
编辑:

在@AndreyTyukin的帮助下,我发现要使它并行工作,我需要运行
List(k,k2,k3).parSequence
,它使用
zio interop cats
库中提供的typeclass
parallel
实例。@LuisMiguelMejíaSuárez对问题的评论给出了一些解释,解释了为什么我们必须使用
并行

libraryDependencies += "dev.zio" %% "zio" % "1.0.0-RC10-1"
libraryDependencies += "dev.zio" %% "zio-interop-cats" % "2.0.0.0-RC1"