请问下面这个方法,在并发条件下会出现死锁或其他问题吗,若有如果避免?

javame 发布于 2015/05/31 21:48
阅读 148
收藏 0
package utils;


import java.io.File;
import java.io.FileWriter;
import java.io.IOException;


public class FileWriterHelper {


public static boolean updateContent(String path, String content, boolean append) {
        boolean result = true;
        File file = new File(path);
        FileWriter writer = null;
        try {
            if (!file.exists())
                file.createNewFile();
            writer = new FileWriter(file, append);
            if (append)
                content = System.getProperty("line.separator") + content;
            writer.write(content);
            writer.flush();
        } catch (IOException ex) {
        ex.printStackTrace();
        result = false;
        } finally {
        if (writer != null) {
        try {
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
        }
        return result;
    }

}
加载中
0
安西都护府首席程序员
安西都护府首席程序员
死锁是不会产生的,但是会让你的内容不正确,比如你第一个写入了一个字符串 "abcef",当写到b的时候另一个线程要写入"123456",可能会出现a123bcdef456,这样顺序就乱了
返回顶部
顶部