Opções para tornar seguro o segmento ByteBuffer do Java

Quais opções eu tenho para fazer um segmento ByteBuffer seguro? Sabe-se que não é thread-safe, uma vez que os métodos safe position, limit e some (/ all?) Dependem deste estado interno.

Para os meus propósitos, será suficiente se vários segmentos de leitura forem seguros, mas para outros futuros visitantes, gostaria de saber quais técnicas / truques / armadilhas eu preciso saber para torná-las completamente seguras.

O que tenho em mente:

Sincronizando ou usando bloqueios ReadWrite para todos os métodos. Provavelmente a abordagem mais lenta (?)Subclasse ByteBuffer e evite persistir o estado de encadeamento de encadeamento como a posição etc. E lançar exceções de acordo com todos os métodos que precisam usar o estado interno. Isso seria os jejuns. Mas existem armadilhas? (exceto que eu terei que ler a memória mapeada diretamente na memória heap ...)

Que outros truques eu poderia usar? Como eu poderia, por exemplo? implementar um "clone bytes em leitura" com DirectBuffer - é possível em tudo? Provavelmente, o faturamento do ByteBuffer (ByteBuffer.slice) estaria envolvido em uma solução?

Atualizar: O que se entende nestequestão com"duplicado (enquanto sincronizado) para obter uma nova instância apontando para os mesmos bytes mapeados"

questionAnswers(1)

yourAnswerToTheQuestion