gpt4 book ai didi

java - 多线程服务器共享ArrayList

转载 作者:太空宇宙 更新时间:2023-11-04 07:14:32 25 4
gpt4 key购买 nike

我正在尝试用 Java 实现一个多线程服务器,其中服务器为连接到它的每个客户端生成一个新线程。通信是在实现 Runnable 接口(interface)并以 Socket 描述符作为输入的类中进行的。当新客户端连接时,我使用套接字描述符编号生成一个新线程。

我需要在服务器上维护两个ArrayList,每当新客户端加入系统时(以及客户端发送的一些数据),它们就会更新。如何实现在不同线程中运行的多个客户端之间共享 ArrayList 的行为?

最佳答案

您可以在主服务器线程中创建并发集合的一个实例,然后通过构造函数将其传递给每个 Runnable 套接字处理程序。 (听起来您已经在执行类似的操作来传递 Socket 本身。)

CopyOnWriteArrayList是一个并发 List 实现,但效率不是特别高。还有其他支持并发访问的集合类型,并且可能提供更好的性能。

关于java - 多线程服务器共享ArrayList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20153102/

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