O bloqueio é uma ferramenta para controlar vários threads para acessar recursos compartilhados. Geralmente, o bloqueio fornece visitas exclusivas aos recursos compartilhados. Existe apenas um thread para obter um bloqueio de cada vez. No entanto, alguns bloqueios podem permitir entrevistas com recursos compartilhados, como o ReadWritelock (mantendo um par de bloqueios relacionados, um para leitura -apenas operação e outro para escrever operações).
1. O bloqueio fornece operações incondicionais, redondas, de tempo, de tempo, interrompido, todos os métodos de travamento e desbloqueio são explícitos.
interface pública Lock {void Lock (); MODO BOOLEAN TRYLOCK (Timeout longo, unidade TimeUnit) lança interrupções de interrupção;
2. O ReentrantLock realiza a interface de bloqueio.
3. A forma normativa da interface de bloqueio exige que o bloqueio de liberação. Se o código do guard de bloqueio for um bloqueio de tentativa externa anormal, ele nunca será lançado.
O seguinte uso de bloqueio de simulação: supondo que haja dois threads (thread a, thread) para chamar o método de impressão (nome da string), o thread a é responsável por imprimir a string 'zhangsan', e o thread B é responsável por imprimir 'lisi ' corda.
1. Ao adicionar o método de fiapo (nome da string), o encadeamento A não foi executado e o thread B começou a executar, o nome impresso terá os seguintes problemas.
2. Quando o método de nome de impressão é adicionado ao bloqueio, o método de impressão (nome da string) é executado após a conclusão da conclusão após a execução ser concluída para obter o efeito de exclusão ou sincronização mútua.
pacote com.ljq.test.thread; String [] args) {new LockTest (). ) {Try {thread.sleep (10);} catch (interruptEdException e) {e.printStackTrace ();} haangsan ");}}}). Start (); // b linhas new thread (new runnable () {) @Override public void run () {while (true) {tente {thread.sleep (10);} catch (interruptedException e) {e.prin. Start (); i <len;