Este artigo estuda principalmente o uso do trocador de ferramentas de sincronização de threads de programação Java. Vamos dar uma olhada no conteúdo específico abaixo.
Se dois threads precisarem trocar informações uma da outra durante sua operação, como dados ou espaço utilizados, eles precisam usar a classe Exchange. O trocador fornece uma maneira muito conveniente para os threads trocarem informações. Pode servir como ponto de sincronização para dois threads trocarem objetos. Somente quando cada encadeamento entra exchange () e fornece o objeto, ele pode aceitar o objeto fornecido quando outros threads retornarem.
Apenas dois threads podem trocar dados por vez. Se houver vários threads, apenas dois podem trocar dados. Vamos ver um exemplo comum: de mãos dadas e entregar as mercadorias com uma música!
public class trocangertest {public static void main (string [] args) {ExecutorSerService Service = executores.newcachedthreadpool (); trocador final trocador = new trouchnger (); // define um objeto Exchange para trocar dados // abrir um thread para executar tarefas run.execute (novo runnable () {{@{{@ "Heroína"; System.out.println ("Thread" + Thread.CurrentThread (). GetName () + "Os medicamentos estão sendo lançados"); Thread.Sleep ((Long) (Math.random ()*10000); // Passe os dados a serem trocados no método de troca e depois em blocos, por outro. (String) trocador.exchange (data1); system.out.println ("thread" + thread.currentThread (). GetName () + "swap heroína para troca" + data2);} catch (exceção e) {} finalmente {service.shutDown (); system.out.println ("transaction está concluído, é concluído. Execute o serviço de tarefas.execute (new Runnable () {@substituir public void run () {try {string data1 = "3 milhões"; system.out.println ("thread" + thread.currentThread (). (String) CLOCANGAND.EXCHANGE (DATA1); SYSTEM.OUT.println ("Thread" + Thread.CurrentThread (). GetName () + "Obteve com 3 milhões" + dados2);} Catch (Exceção e) {} finalmente {Service.shutdown (); heroína! ");}}});}});}});}});}});}}}Do código, parecia ver duas pessoas negociando drogas ... vamos ver como os resultados da transação são:
Thread Pool-1-Thread-1 está tirando a heroína da droga. O Thread Pool-1-Thread-2 está destacando 3 milhões. Thread Pool-1-Thread-2 está recebendo o heroína Pool-1-Thread-1 para troca de heroína por 3 milhões. A transação é concluída. Pegue a heroína e corra rapidamente!
Depois que a transação terminar, fuja com o dinheiro!
Ele funciona rápido. A julgar pelos resultados em execução, ele percebe a troca de dados. Isso está apenas trocando um tipo básico de dados. Seus usos reais não se limitam a isso. Por exemplo, podemos trocar um objeto, o que é útil. O JDK mencionou oficialmente um aplicativo de alto nível:
Use o trocador para trocar buffers entre os threads; portanto, quando necessário, o encadeamento preenche o buffer recebe um buffer recém -vago e passa o buffer preenchido para o thread que o buffer vago.
Isso deve ser baseado na situação real. A idéia é a mesma que acima. Na realidade, você deve definir uma classe de buffer e, em seguida, a classe desse buffer é trocada entre os dois threads. Quanto a como implementá -lo na classe, depende da situação real. Isso é tudo para o uso do trocador ~
O exposto acima é o conteúdo inteiro deste artigo sobre a análise de instância de uso do trocador de ferramentas de sincronização de threads de programação Java, espero que seja útil para todos. Amigos interessados podem continuar se referindo a outros tópicos relacionados neste site. Se houver alguma falha, deixe uma mensagem para apontá -la. Obrigado amigos pelo seu apoio para este site!