A introdução de NIO
Múltipla de alta velocidade de não-bloqueio rede de canais IO
Síncrona e assíncrona
O conceito é fazer com que o seu caminho em termos de procedimentos para os resultados operacionais:
Sincronização: Antes de obter nenhum resultado ou por meio de votação constantemente perguntando se um resultado, não voltará antes de obter os resultados
Asynchronous: O chamador emitido após após a chamada, um resultado direto de não retorno, espera de chamada a ser produzido pela chamada de notificação do resultado do estado tenha sido concluída, os resultados retornados pela função callback
O bloqueio e não bloqueio
Bloqueio: Quando o processo de implementação, os resultados não têm sido antes, este processo está temporariamente suspenso, não fazer nada
Non-blocking: Antes de você não obter os resultados, o fio não vai parar a operação, que não bloqueia o segmento atual;
classe tampão (buffer)
Conceito: Tampão é um objeto, ele tem alguns tipos básicos de pacote array. NIO começou com Channel ( canal ) é através
de buffer para ler e gravar dados. (É a essência da matriz)
Use etapas
Uso Tampão geralmente seguir os dados de escrita seguinte quatro etapas:
1. O dados são escritos para Tamp ;
2. chamada aleta () Método; (o limite = posição, posição = 0, as devoluções Mark) para alterar o modo de escrita tampão
3. a partir de tampão ler dados;
4. chamadas limpar () método ou um compact () método. (Claro: Limite = paracity (capacidade), posição = 0, as devoluções Mark)
Tampão tipo de
Tampão ter a seguinte principal:
ByteBuffer
CharBuffer
DoubleBuffer
FloatBuffer
IntBuffer
LongBuffer
ShortBuffe
ByteBuffer classe interna encapsula um byte [] matriz, e a matriz pode ser operado por um número de métodos.
Criar um ByteBuffer objetos
maneira:
Criar um buffer na pilha: a repartição da capacidade (int Capacity) tampão Capacidade
criado na pilha tampão chamado: tampão indireta
maneira:
Na memória do sistema para criar um buffer: allocatDirect (int Capacity)
Na memória do sistema para criar um buffer conhecido como: buffers diretos
são criados e destruídos eficiência tampão indireta do que o buffer direta
trabalho tampão indireta menos eficiente do que buffers diretos
três maneiras:
Através da matriz para criar um tampão: envoltório (byte [] arr)
tampão zona é criada desta forma: tampão indirecta
Adicionar elementos ao tampão
- o público ByteBuffer PUT (byte B) : para adicionar dados para a posição disponível atualmente.
- o público ByteBuffer PUT (byte [] byteArray A) : Para a posição de um actualmente disponíveis byte [] matriz
- o ByteBuffer pública PUT (byte [] byteArray A, int compensar int len, ) : adição de um byte [] parte de uma matriz
tampão vários parâmetros
Capacidade -capacidade
Tampão de capacidade (capacidade) meios: Tampão número máximo de elementos pode ser contida. Define tampão , a capacidade não é
variável.
Restrição -limit
limite limite refere-se a: um primeiro elemento não deve ler ou escrever o índice de índice. Tampão limite (limite) não pode ser negativo e
obrigação não é maior do que a capacidade.
Existem dois métodos relacionados:
limite int público () : Gets limite deste buffer.
Tampão limite pública (int newLimit) : Definir limite deste tampão .
Localização -position
posição posição significa: índice escrito atualmente. Uma posição não inferior a 0 e não maior do que " limite " .
Existem dois métodos relacionados:
posição int público () : Retorna o índice posição atual podem ser escritas.
posição tampão público (o p-int) : alterar o índice de posição de gravação atual.
Marcar Mark
marca marca meios: ao chamar tampão de reposição () quando o processo vai tamponar a posição de localização é reposta a este índice. Não
é 0 , não pode exceder posição .
métodos relacionados:
pública Buffer de marca () : Esta bandeira é ajustado à corrente tampão posição localização.
método comum
Outros métodos
int pública restante () : Obter posição e limitar o número de elementos entre.
pública isReadOnly boolean () : Obter o buffer atual é somente leitura.
pública isDirect boolean () : Obtém o buffer atual é um buffer direta.
# Método comum de
buffer pública a Clear () : redução do Estado buffer.
A posição é definida como: 0
para limitar o limite à capacidade Capacidade ;
bandeira descarte Mark .
Tampão pública Flip () : Estreito limite de gama.
O limite para a actual posição posição;
a actual posição de posição é definido como 0 ;
bandeira de descarte.
Tampão rebobinar pública () : Este tampão retrocesso.
A posição posição é conjunto: 0
restrições limitar inalterado.
bandeira de descarte.