<dependency> <groupId>org.scalaz</groupId> <artifactId>scalaz-concurrent_2.13</artifactId> </dependency> import scalaz.concurrent.Task; import java.util.Arrays; public class ParallelComputationExample { public static void main(String[] args) { Task<Integer> task1 = Task.delay(() -> compute(1)); Task<Integer> task2 = Task.delay(() -> compute(2)); Task<Integer[]> parallelTask = Task.parallel(task1, task2); Task<String> resultTask = parallelTask.map(results -> Arrays.toString(results)); } private static int compute(int input) { try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } return input * 2; } } import scalaz.concurrent.Task; public class ErrorHandlingExample { public static void main(String[] args) { Task<String> task = Task.delay(() -> { throw new RuntimeException("Async error occurred!"); }); Task<String> resultTask = task.handle(error -> "Handled error: " + error.getMessage()); String result = resultTask.run().unsafePerformSync(); System.out.println(result); } } import scalaz.concurrent.Strategy; import scalaz.concurrent.Task; public class ThreadPoolAndSchedulerConfigExample { public static void main(String[] args) { int numThreads = 4; Strategy.Executor executor = Strategy.Executor.newFixedThreadPool(numThreads); Strategy strategy = Strategy.ExecutorStrategy(executor); Task<String> task = Task.delay(() -> "Hello, Scalaz Concurrent!"); Task<String> resultTask = task.map(str -> str.toUpperCase()).executeWith(strategy); String result = resultTask.run().unsafePerformSync(); System.out.println(result); } }


上一篇:
下一篇:
切换中文