Из того, что я знаю и исследовал, ключевое слово synchronized
в Java позволяет синхронизировать оператор метода или блока кода для обработки многопоточного -доступа. Если я хочу заблокировать файл для записи в многопоточной -среде, я должен использовать классы в пакете Java NIO , чтобы получить наилучшие результаты. Вчера я задал вопрос об обработке общего сервлета для файловых операций ввода-вывода, и комментарии BalusC помогают найти решение, но код в этого ответа меня смущает. Я не прошу сообщество «сжечь этот пост» или «давайте его минусовать» (примечание :Я не минусовал его или что-то в этом роде, и я ничего не имею против ответа ), я прошу объяснение, можно ли считать фрагмент кода хорошей практикой
private static File theFile = new File("theonetoopen.txt");
private void someImportantIOMethod(Object stuff){
/*
This is the line that confuses me. You can use any object as a lock, but
is good to use a File object for this purpose?
*/
synchronized(theFile) {
//Your file output writing code here.
}
}