У меня такая ситуация:
веб-приложению с одновременными запросами cca 200 (потоками) необходимо записать что-то в локальную файловую систему.У меня есть один класс, которому все потоки выполняют свои вызовы, и этот класс внутренне хранит сообщения в одном массиве (Vector или ArrayList), который затем, в свою очередь, будет записан в файловую систему.
Идея состоит в том, чтобы вернуться из вызова потокаКАК МОЖНО СКОРЕЕ, чтобы поток мог выполнять свою работу как можно быстрее, какой поток хотел записать, может быть записан в файловую систему позже, это не так важно.
Итак, этот класс, в свою очередь, удаляет первый элемент из этого списка и записываетэто в файловой системе, в то время как в реальном времени есть 10 или 20 потоков, которые добавляют новые журналы в конце этого списка.
Я хотел бы использовать ArrayList, поскольку он не синхронизирован и, следовательно, вызовы потока будут длиться меньше, вопрос:
Рискую ли я тупиковые блокировки / потеря данных?Лучше ли использовать Vector, так как он безопасен для потоков?Это медленнее использовать вектор?