Нужна ли синхронизация этому методу в исполняемом объекте?

Следующий метод принадлежит объекту A, который реализует Runnable. Он вызывается асинхронно другим методом из объекта А и кодом внутри метода запуска (так, он вызывается из другого потока с периодом 5 секунд).

Могу ли я получить исключения при создании файла?

Если я сделаю метод синхронизированным. .. блокировка всегда устанавливается над объектом A ? Меня смущает тот факт, что один из вызывающих абонентов использует метод run():S

Спасибо за ваш вклад.

private void saveMap(ConcurrentMap<String, String> map) {
    ObjectOutputStream obj = null;
    try {
        obj = new ObjectOutputStream(new FileOutputStream("map.txt"));
        obj.writeObject(map);

    } catch (IOException ex) {
        Logger.getLogger(MessagesFileManager.class.getName()).log(Level.SEVERE, null, ex);
    } finally {
        try {
            obj.close();
        } catch (IOException ex) {
            Logger.getLogger(MessagesFileManager.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
    notifyActionListeners();
}
5
задан HInterface 12 May 2012 в 23:30
поделиться