Предположительно, вы делаете какой-то пост-анализ файла журнала?Считаете ли вы, что не заботитесь о том, что они написаны, и о том, чтобы сделать заказ позже.Вы можете выделить уникальный идентификатор во время отправки, используя метку времени или AtomicLong?
эскиз кода (не проверенный) будет выглядеть так:
import java.util.concurrent.atomic.AtomicLong;
class MyProcessor {
public void work()
for (Object data: allData) {
executor.submit(new MySequencedRunnable(data);
}
}
}
class MySequencedRunnable implements Runnable {
private static final AtomicLong LOG_SEQUENCE_ID = new AtomicLong(0);
private final Object data;
MySequencedRunnable(Object data) {
this.data = data;
}
public void run() {
LOGGER.log(LOG_SEQUENCE_ID.incrementAndGet(), data);
}
}
ТакжеЕсли вы используете что-то вроде log4j, используйте NDC или MDC , чтобы помочь с переупорядочением.