gpt4 book ai didi

java - 我不懂线程

转载 作者:行者123 更新时间:2023-12-01 09:57:23 24 4
gpt4 key购买 nike

假设我有一个函数

Data[] foo(double[] someNumbers, Data[] someData, AnalyzeTool tool, int numOfThreads)

,数组的长度 len 相同。

现在我想使用工具调用方法中的 numOfThreads 个线程来处理每个 Data.Object 并将其写回到 Data[] 中,以便给定的 Data[] 和写入的 Data[] 保留在命令。

假设一个线程现在已完成处理一个数据对象,我如何告诉该线程,仍然有数据尚未处理,并分配并“锁定”下一个数据对象来处理它? “锁定”应该防止数据对象被多个线程多次处理。

有人有一个如何做到这一点的例子吗?欢迎任何形式的建设性帮助。

最佳答案

它将使用 JDK 8 和流来完成此操作。我正在想象这样的事情:

List<Data> foo(List<Double> someNumbers, List<Data> someData, AnalyzeTool tool) {
return someData.parallelStream().map((t, n) -> t.doSomething(n)).collect(Collectors.toList());
}

关于java - 我不懂线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37089084/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com