I have less experience of multi-thread programming. I have multi-threads to write to a file. And I was wondering what's the difference between:
Implement 1: a class with static synchronized function. And each thread call FileUtil.writeToFile()
public class FileUtil {
    public static synchronized void writeToFile(String filename) {
        // write to file....
    }
}
Implement 2: A singleton class. And each thread call Fileutil.getInstance().writeToFile()
public class FileUtil {
    private static final FileUtil fileManager = new FileUtil();
    private FileUtil() {
    }
    public synchronized void writeToFile(String filename) {
        // write to file....
    }
    public static FileUtil getInstance() {
        return fileManager;
    }
}
 
     
     
     
     
     
    