gpt4 book ai didi

java - 如何对这种情况进行多线程处理?

转载 作者:行者123 更新时间:2023-11-29 06:13:15 26 4
gpt4 key购买 nike

我想模拟一个分布式系统,在其中,我应该以分布式(如果可以的话并行!!)的方式对信息(供应)进行研究,例如我有以下类(class):

public class Group{
public int identifier;
public int[] members;
public String name;
public String[] supplies;
public int[] neighbors;}

有很多组,每个组都有一个名字,由成员、邻居和供应品列表组成,每个成员都有一些信息和列表,其他组可能包含相关信息和供应品,等等。

1- 我想研究供应,首先:在一个组内,如果我找不到所需的供应,我应该在与该组相邻的所有组内进行搜索,我想做这个使用多线程,我的意思是,如果搜索失败,我应该使用多个线程同时在所有其他邻居中进行搜索,每个线程考虑一个邻居,如果我有 10 个邻居,那么应该创建 10 个线程....

2- 现在,如果我想在第一时间开始重新搜索多个组,我的意思是从 3 或 4 个组或更多组开始,每个组寻找不同的供应,或相同的... . + 调用搜索的一组可能是另一组的邻居...

所以,我的问题是如何使用线程实现这种情况?

PS.我有一台单处理器单核的机器,我不关心执行时间(开销),我只想模拟这个问题......

感谢您的每一次回复,并致以最诚挚的问候。

最佳答案

由于您遇到 CPU 限制问题,因此使用的最佳线程数可能是您拥有的内核数。我会确保每个线程有大约 100 微秒的工作,否则您会发现您的开销比有用的工作更多。例如您可能会发现搜索 10K 个节点大约需要 100 us 的工作量。如果您不小心,多线程应用程序可能比单线程应用程序慢很多倍。

所以我会找到一种方法来划分工作,以便每个线程有大约 1K 到 100K 个节点,并将并发限制为您拥有的核心数量。

关于java - 如何对这种情况进行多线程处理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6021312/

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