¿Existen reglas / pautas generales para lo que hace que un método sea seguro para subprocesos? Entiendo que probablemente haya un millón de situaciones puntuales, pero ¿qué pasa en general? ¿Es así de simple?
- Si un método solo accede a variables locales, es seguro para subprocesos.
¿Es asi? ¿Se aplica eso también a los métodos estáticos?
Una respuesta, proporcionada por @Cybis, fue:
Las variables locales no se pueden compartir entre subprocesos porque cada subproceso tiene su propia pila.
¿Es ese el caso de los métodos estáticos también?
Si se pasa un método a un objeto de referencia, ¿eso rompe la seguridad del hilo? He investigado un poco, y hay mucho sobre ciertos casos, pero esperaba poder definir, usando solo unas pocas reglas, pautas a seguir para asegurarme de que un método sea seguro para subprocesos.
Entonces, supongo que mi última pregunta es: "¿Existe una breve lista de reglas que definen un método seguro para subprocesos? Si es así, ¿cuáles son?"
EDITAR
Aquí se han hecho muchos puntos buenos. Creo que la verdadera respuesta a esta pregunta es: "No hay reglas simples para garantizar la seguridad de los hilos". Frio. Multa. Pero, en general , creo que la respuesta aceptada proporciona un buen resumen breve. Siempre hay excepciones. Que así sea. Puedo vivir con ello.