我有一个方法可以将对象添加到队列中,还可以检查队列大小。如果队列大小达到最大容量,则会发出警报,队列将移除第一个对象。以下是代码
private SomeQueue queue;
private boolean raiseAlarmOnce = true;
private boolean alarmRaised;
private AlarmConnection alarmConnection;
void addToQueue(Object obj) {
queue.add(obj);
while (queue.size() > 1000) {
queue.remove();
if (m_raiseAlarmOnce) {
// raiseAlarm mtheod will return boolean value to indicate
// the result of raising alarm
m_alarmRaised = alarmConnection.raiseAlarm();
raiseAlarmOnce = false;
}
}
m_raiseAlarmOnce = true;
if (m_alarmRaised) {
alarmConnection.clear();
m_alarmRaised = false;
}
}
当队列大于1000时,队列会不断删除obj,只会告警一次。如果告警触发成功,告警将被清除。只是想知道有什么更好的方法吗?
https://stackoverflow.com/questions/54774173
复制相似问题