Según lo que sé e investigado, la palabra clave synchronized
en Java permite sincronizar un método o una instrucción de bloque de código para manejar el acceso de subprocesos múltiples. Si quiero bloquear un archivo para fines de escritura en un entorno de subprocesos múltiples, I
debe
debe utilizar las clases en el Java NIO package para obtener los mejores resultados. Ayer, surgió una pregunta sobre el manejo de un servlet compartido para las operaciones de E/S de archivos, y los comentarios de BalusC son buenos para ayudar con la solución, pero el código en this answer me confunde. No le estoy pidiendo a la comunidad que "queme esa publicación" o "vamos a rechazarlo" (nota: no lo he votado negativamente ni nada, y no tengo nada en contra de la respuesta), estoy pidiendo una explicación si el fragmento de código puede considerarse una buena prácticaSincronizar objeto de archivo
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.
}
}
+1 porque ahora tiene más de 4000. – Hassan
@Hassan sea quien sea y sea cual sea su reputación, no haga eso hasta que sienta que la pregunta/respuesta es útil. –
@Nandkumar Me gusta esta pregunta, solo pensé que era divertida. – Hassan