Red de conocimiento informático - Aprendizaje de programación - ¿Por qué el objeto obtenido por java rmi es una instancia única?

¿Por qué el objeto obtenido por java rmi es una instancia única?

El servidor RMI en sí admite subprocesos múltiples, al igual que Tomcat, lo que requiere que nosotros mismos nos ocupemos de los problemas de seguridad de los subprocesos.

Parece posible crear un ABCContext para cada solicitud que contenga todos los valores de estado (variables miembro aquí), al igual que JSF u otras API similares. De esta manera, cualquier clase de negocio a la que su MyService llame directa o indirectamente puede usar ABCContext.getInstance() en cualquier momento para obtener el valor de estado correspondiente a la solicitud. Entonces, cada hilo es independiente entre sí, no tenemos que poner todo en MyService.doAction, sino delegarlo a otras clases y, conceptualmente, MyService simplemente actúa como una fachada para el servicio de sesión EJB.

privado?static?final?ThreadLocal?CONTEXTS?=?new?ThreadLocal();

público?static?ABCContext?getInstance()?{

return?CONTEXTS.get();

}

público?static?void?setInstance(ABCContext?context)?{

CONTEXTS.set(contexto) ;

}

}

¿público?{

¿probar?{

ABCContext.set(¿nuevo? ABCContext());

/?Luego comienza a llamar a otros métodos.

myServiceWorker.doService();

}?¿finalmente?{

CONTEXTS.set(null);

}

}

class?MyServiceWorker?{

? p>public?void?doService()?{

//?Todos los valores de estado intermedio se almacenan en ABCContext y cada solicitud corresponde a un hilo diferente que utiliza un ABCContext diferente.

ABCCContext?context?=?ABCContext.getInstance();

/? Ahora comencemos nuestro trabajo normal, coloque los parámetros o cualquier otra cosa en el contexto correspondiente a cada hilo.

}

}