sách gpt4 ai đã đi

java - 并行流看起来不像是并行工作,完全

In lại 作者:行者123 更新时间:2023-11-30 12:06:19 29 4
mua khóa gpt4 Nike

1。 Set 的 parallelStream 没有使用足够的线程。

Java8 parallelStream 不能完全并行工作。在我的计算机中,当任务数小于处理器数时,java8 集的 parallelStream 没有使用足够的线程。

public class ParallelStreamSplitTest {
@Bài kiểm tra
public void setStreamParallelTest() {
System.out.printf("Total processor count : %d \n", Runtime.getRuntime().availableProcessors());
long start = System.currentTimeMillis();
IntStream.range(1, 8).boxed().collect(Collectors.toCollection(HashSet::new)).parallelStream().forEach((index) -> {
System.out.println("Starting " + Thread.currentThread().getName() + ", index=" + index + ", " + new Date());
thử {
Thread.sleep(1000);
} catch (Exception e) {
}
});
long end = System.currentTimeMillis();
System.out.println(Thread.currentThread().getName() + "'s elapsed time : " + (end - start));
}

@Bài kiểm tra
public void intStreamParallelTest() {
System.out.printf("Total processor count : %d \n", Runtime.getRuntime().availableProcessors());
long start = System.currentTimeMillis();
IntStream.range(1, 8).parallel().forEach(index -> {
System.out.println("Starting " + Thread.currentThread().getName() + ", index=" + index + ", " + new Date());
thử {
Thread.sleep(1000);
} bắt (InterruptedException e) {
}
});
long end = System.currentTimeMillis();
System.out.println(Thread.currentThread().getName() + "'s elapsed time : " + (end - start));
}
}

在我的代码中,setStreamParallelTest 需要 4 秒,而 intStreamParallelTest 需要 1 秒。

我希望 setStreamParallelTest 也能在 1 秒内完成。是错误吗?

2。在web应用中使用并行流调用另一个api可以吗?如果错了,为什么?

我的网络应用程序需要并行调用另一个 api 服务器。所以我使用并行流调用api。

Sets.newHashSet(api1, api2, api3, api4).parallelStream().forEach(api -> callApiSync(api))

我认为绑定(bind)到我的服务器的所有请求都共享一个 fork-join 池。所以,当其中一个 api 的响应缓慢时,它看起来很危险。

是否正确?

1 Câu trả lời

parallelStream 的契约(Contract)说:

Returns a possibly parallel Stream with this collection as its source. It is allowable for this method to return a sequential stream.

如果您想并行调用多个任务,请使用 ExecutorService.

关于java - 并行流看起来不像是并行工作,完全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55643655/

29 4 0
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com