Встречается на собеседованиях • сегодня
Когда монитор будет передавать файл библиотеке при многопоточной работе с файлами
В Java монитор (intrinsic lock) передаст управление файлом библиотеке при многопоточной работе, когда поток войдет в синхронизированный блок или метод. Для работы с файлами рекомендуется:
- Использовать
synchronizedблоки:
java
synchronized(lockObject) {
// операции с файлом
}- Либо синхронизированные методы:
java
public synchronized void writeToFile() {
// запись в файл
}Критические моменты:
- Один поток получает доступ к файлу за раз
- После выхода из синхронизированного блока монитор освобождается
- Для чтения лучше использовать
ReentrantReadWriteLockчтобы разрешить множественное чтение - В Java NIO есть
FileChannel.lock()для файловых блокировок
Пример с ReentrantReadWriteLock:
java
ReadWriteLock rwLock = new ReentrantReadWriteLock();
rwLock.readLock().lock(); // для чтения
rwLock.writeLock().lock(); // для записи
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы