Opciones para hacer seguro el subproceso ByteBuffer de Java

¿Qué opciones tengo para hacer seguro un subproceso ByteBuffer? Se sabe que no es seguro para subprocesos ya que protege la posición, el límite y algunos (/ ¿todos?) Los métodos dependen de este estado interno.

Para mis propósitos, será suficiente si varias hebras de lectura son seguras, pero para otras futuras visitas me gustaría saber qué técnicas / trucos / trampas necesito saber para que sea completamente segura.

Lo que tengo en mente:

Sincronización o uso de los bloqueos de ReadWrite para todos los métodos. Probablemente el enfoque más lento (?)Subclasifique ByteBuffer y evite persistir en el estado de enlace de hilos como la posición, etc. Y lanzar excepciones en consecuencia para todos los métodos que necesiten usar un estado interno. Estos serían los ayunos. Pero ¿hay alguna trampa? (excepto que tendré que leer la memoria asignada directamente en la memoria del montón ...)

¿Qué otros trucos puedo usar? ¿Cómo p. Ej. implementar un "clone bytes en lectura" con DirectBuffer - ¿es posible? ¿Probablemente estaría involucrado cortar una ByteBuffer completa (ByteBuffer.slice) en una solución?

Actualizar: ¿Qué significa esto?pregunta con"duplicar (mientras está sincronizado) para obtener una nueva instancia que apunta a los mismos bytes asignados"

Respuestas a la pregunta(1)

Su respuesta a la pregunta