Синхронизировать файловый объект

Из того, что я знаю и исследовал, ключевое слово 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.
    }
}

7
задан Community 23 May 2017 в 12:23
поделиться