多线程请求接口 将数据放入集合中 集合长度不固定
时间: 2024-02-20 08:56:25 浏览: 57
你好,对于你的问题,我可以给出以下的回答:
在多线程请求接口时,如果要将数据放入集合中,并且集合长度不固定,可以考虑使用线程安全的集合,如 `ConcurrentLinkedQueue`、`ConcurrentHashMap` 等。这些集合都可以在多线程环境下安全地进行读写操作。
具体操作可以参考以下代码示例:
```java
import java.util.concurrent.ConcurrentLinkedQueue;
public class DataCollector {
private ConcurrentLinkedQueue<String> dataQueue;
public DataCollector() {
dataQueue = new ConcurrentLinkedQueue<>();
}
public void addData(String data) {
dataQueue.offer(data);
}
public int getDataCount() {
return dataQueue.size();
}
// 其他操作方法
}
```
在上面的代码中,我们创建了一个线程安全的 `ConcurrentLinkedQueue` 集合,通过 `addData` 方法将数据添加到集合中,通过 `getDataCount` 方法获取集合中数据的数量。
当然,在实际应用中,还需要考虑线程安全问题,如多线程同时添加或读取数据时的并发问题,可以使用 synchronized 关键字或者使用锁来保证线程安全。
阅读全文