Um programa Java que só pode fazer uma coisa de cada vez tem limitações significativas na complexidade das tarefas que o programador pode pedir para ele executar. Para permitir que os programas para executar várias operações ao mesmo tempo, os programadores Java pode criar novos processos por instanciar threads. Apesar de sua utilidade e necessidade em aplicações complexas , tópicos não são sem limitações. Tópicos
programadores Java criar tópicos de uma classe que implementa a interface " Runnable " . Os fios agem como programas dentro de programas , porque eles devem incluir o método " run () " , que se comporta como o "public static void main () " na classe principal do programa . O programador inicia um segmento , criando uma nova instância do objeto e, em seguida, chamar o método " run" . Uma vez tópicos começar a correr , eles podem acessar as variáveis e chamar métodos de outros objetos.
Desempenho Limitações
Cada thread que um programa Java cria adiciona um fardo além do computador de processador . Se um programa Java gera vários segmentos intensivos do processador , então a máquina na qual o programa opera pode diminuir significativamente. Isso reduz o desempenho do programa . Além de ajuste de desempenho, cada processador tem um número máximo de threads de programa para o qual ele pode programar o tempo de processamento . Esse número varia de sistema para sistema, e está disponível em sua documentação.
Erros variáveis
Quando um programa é composto por um único segmento , o " principal " método public static void (), a integridade dos dados de variáveis do programa não é um problema. Quando um programa tem vários tópicos como acessar e modificar as mesmas variáveis , uma variável pode ser alterado por um segmento diferente . A mudança ocorre entre o momento em que o outro thread acessa o valor da variável eo tempo que modifica essa variável. Quando threads estão executando funções de variáveis que dependem de valor inicial da variável, isto pode levar a corrupção de dados.
Locks
Para evitar corrupção de dados, biblioteca padrão do Java inclui objetos chamados " bloqueios ". Quando uma thread acessa uma variável com a intenção de modificá-lo , a thread pode chamar um método de bloqueio que impede que outros segmentos de acessar a variável até que o thread atual é feito com ele. Depois que o segmento libera o bloqueio , o próximo thread pode bloquear a variável. Enquanto isso impede a corrupção de dados , ela diminui o desempenho do aplicativo .