我的服务必须进行几十个 API 调用,但是哪些调用以及我调用它们的频率取决于当前登录系统的用户。
因此,如果我目前有 500 人登录系统,他们的请求将优先于当前未登录的人。
我应该如何或使用哪种类型的集合是线程安全的,并且我可以根据用户优先级进行迭代和变异,以及我将根据应该首先进行哪些调用来确定的其他分数。
你会建议我使用 executorservice 来创建一组线程池吗?
我的服务必须进行几十个 API 调用,但是哪些调用以及我调用它们的频率取决于当前登录系统的用户。
因此,如果我目前有 500 人登录系统,他们的请求将优先于当前未登录的人。
我应该如何或使用哪种类型的集合是线程安全的,并且我可以根据用户优先级进行迭代和变异,以及我将根据应该首先进行哪些调用来确定的其他分数。
你会建议我使用 executorservice 来创建一组线程池吗?
至于关于集合的第一个问题,您可以查看PriorityBlockingQueue,它是 PriorityQueue 的线程安全版本。您可以实施比较器来为当前在线的用户优先考虑项目。我没有使用它,但我怀疑它不允许根据用户的当前状态动态更改顺序,而是在将项目添加到队列时根据用户的状态进行排序。
使用该集合,您可以使用 executorservice 或任何其他设备从队列中拉出并执行 API 调用。