Articles of thread safety

Propiedad Thread-safe List

Quiero una implementación de List como una propiedad que se puede utilizar de forma segura sin ninguna duda. Algo como esto: private List _list; private List MyT { get { // return a copy of _list; } set { _list = value; } } Parece que todavía necesito devolver una copia (clonada) de la colección, […]

Prueba de unidad para seguridad de hilo?

He escrito una clase y muchas pruebas de unidad, pero no lo hice seguro. Ahora, quiero que el hilo de la clase sea seguro, pero para probarlo y usar TDD, quiero escribir algunas pruebas de unidad que fallan antes de comenzar a refactorizar. ¿Alguna buena forma de hacer esto? Mi primer pensamiento es simplemente crear […]

Seguridad de subprocesos de std :: map para operaciones de solo lectura

Tengo un std :: map que uso para mapear valores (identificaciones de campo) a una cadena legible por humanos. Este mapa se inicializa una vez cuando mi progtwig se inicia antes de que se inicien otros hilos, y luego de eso nunca se modifica nuevamente. En este momento, doy a cada hilo su propia copia […]

javafx, actualiza ui desde otro hilo

Tengo una aplicación javafx y un hilo de trabajo, implementado a través de javafx.concurrent.Task , que realiza un proceso largo, que es comprimir y cargar un conjunto de archivos. He conectado el progreso de la tarea a una barra de progressProperty través de progressProperty . Además de esto, quiero un estado detallado sobre el artículo […]

¿El subproceso RestTemplate es seguro?

¿Un Spring RestTemplate es seguro para subprocesos? Es decir Es un RestTemplate un objeto de estrategia que las conexiones múltiples pueden compartir de forma segura. o Es un RestTemplate un objeto de conexión (como una conexión de base de datos), que no se puede compartir mientras está en uso, y requiere una RestTemplate creación o […]

¿Está bien usar la instancia de Gson como campo estático en un bean modelo (reutilización)?

Este es el modelo que implementé: public class LoginSession { private static final Gson gson = new Gson(); private String id; private String name; private long timestamp; public LoginSession(String id, String name) { this.id = id; this.name = name; this.timestamp = System.currentTimeMillis(); } public String toJson() { return gson.toJson(this); } public static LoginSession fromJson(String json) […]

Must Spring MVC Class sea Thread-Safe

Si usa Spring MVC, ¿sus clases de componentes ( @Controller , @Service , @Repository ) deben ser seguras para hilos? Es decir, si tengo un método @RequestMapping en mi @Controller , ¿se podría llamar ese método simultáneamente para el mismo objeto controlador por más de un hilo? (Esto se ha preguntado antes , pero no […]

¿Cómo pruebo programáticamente que StringBuilder no es seguro para los hilos?

¿Cómo pruebo programáticamente que StringBuilder no es seguro para los hilos? Intenté esto, pero no está funcionando: public class Threadsafe { public static void main(String[] args) throws InterruptedException { long startdate = System.currentTimeMillis(); MyThread1 mt1 = new MyThread1(); Thread t = new Thread(mt1); MyThread2 mt2 = new MyThread2(); Thread t0 = new Thread(mt2); t.start(); t0.start(); […]

¿Cómo implementar la inicialización perezosa segura para subprocesos?

¿Cuáles son algunos de los enfoques recomendados para lograr la inicialización lenta y segura de subprocesos ? Por ejemplo, // Not thread-safe public Foo getInstance(){ if(INSTANCE == null){ INSTANCE = new Foo(); } return INSTANCE; }

¿Los métodos estáticos no sincronizados son seguros si no modifican las variables de clase estáticas?

Me preguntaba si tiene un método estático que no está sincronizado, pero no modifica ninguna variable estática ¿es seguro para subprocesos? ¿Qué pasa si el método crea variables locales dentro de él? Por ejemplo, ¿el siguiente código es seguro para la ejecución de subprocesos? public static String[] makeStringArray( String a, String b ){ return new […]