Pregunta

Estoy tratando de encontrar documentación que indique si java.util.concurrent.future es/no es ThreadSafe. Por ejemplo, ¿puedo dar la misma instancia de futuro a múltiples hilos, que llamarán a Future.get (...)?

He probado el código usando el futuro de esta manera y parece funcionar bien, pero sería mucho más feliz si pudiera encontrar la expectativa documentada de que el futuro es seguro para el acceso concurrente de esta manera.

Gracias.

¿Fue útil?

Solución

Dado que el futuro está destinado a ser utilizado por varios hilos (al menos el que presenta, y el que establece su resultado), y dado que la documentación especifica que existe una relación antes del cálculo asincrónico y las acciones que ocurren Después de Get Call, supongo que las implementaciones son seguras (al menos las implementaciones estándar).

Otros consejos

Si esta usando un Future regresó de un ExecutorService, entonces sí, se garantiza que serán seguros. Dado que Future es una interfaz, el creador de la interfaz no puede garantizar que todas las implementaciones sean seguras de hilo.

Sin embargo, Nizet menciona un buen punto. El documento dice que las implementaciones de la interfaz futura deberían ser seguras hilos, no hacer que la implementación segurra el hilo de la seguridad del contrato del futuro

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top