Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

202
Vistas
¿Cuál es el equivalente de Java de C# "Contexto de llamada lógica"?

En .net, hay un almacenamiento local de subprocesos (TLS) "uber" que permite que los datos TLS arbitrarios "salten" automáticamente de un subproceso a otro. Se basa en la clase CallContext .

En otras palabras, una solicitud lógica puede generar una jerarquía de nuevos subprocesos, y cada uno de esos subprocesos tendrá acceso al mismo TLS del subproceso original. Es una característica muy poderosa, particularmente para el registro, la autorización, la tenencia múltiple o las preocupaciones de marca.

¿Cuál es el equivalente en Java?

Solo en .net 4.5 el "contexto de llamada lógico" obtuvo la capacidad de "copiar al escribir" que permite que los subprocesos realicen modificaciones privadas en el contexto de llamada lógico. En otras palabras, .net todavía está madurando esta capacidad y proporcionando una mayor estabilidad.

Si Java tiene una noción equivalente, ¿qué tan estable es? ¿Qué problemas tiene?

Aclaración

Ya sé que Java tiene una capacidad de almacenamiento local de subprocesos (TLS). Esa no es la pregunta. Estoy preguntando si Java tiene un equivalente del "contexto de llamada lógica" de .net, que es una construcción mucho más poderosa que el simple TLS.

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

¿Quizás InheritableThreadLocal es lo que estás buscando?

No estoy seguro de si es exactamente igual, pero según tengo entendido cumple con este requisito:

una solicitud lógica puede generar una jerarquía de nuevos subprocesos, y cada uno de esos subprocesos tendrá acceso al mismo TLS del subproceso original.

de los documentos

Esta clase amplía ThreadLocal para proporcionar la herencia de valores del subproceso principal al subproceso secundario: cuando se crea un subproceso secundario, el elemento secundario recibe valores iniciales para todas las variables locales de subprocesos heredables para las que el elemento principal tiene valores. Normalmente, los valores del hijo serán idénticos a los del padre; sin embargo, el valor del hijo se puede convertir en una función arbitraria del padre anulando el método childValue en esta clase. Las variables locales de subprocesos heredables se utilizan con preferencia a las variables locales de subprocesos ordinarias cuando el atributo por subproceso que se mantiene en la variable (por ejemplo, ID de usuario, ID de transacción) debe transmitirse automáticamente a cualquier subproceso secundario que se cree.

No sé acerca de la capacidad de "copiar al escribir" que mencionó, pero supongo que puede anular InheritableThreadLocal.childValue(T) para representar el valor del padre para que las escrituras no pasen al padre y modificar el local del hilo actual almacenamiento

over 4 years ago · Santiago Trujillo Denunciar

0

No estoy familiarizado con .net, pero según su descripción, lo más parecido que pude pensar fue un ThreadLocal .

Sin embargo, encontré un artículo que podría resultarle útil.

https://dzone.com/articles/thread-local-storage-java

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda