Pergunta

Desculpe por outra vaga exemplo ... mas eu tenho uma única classe onde eu estou começando uma nova instância de discussão. No entanto, se eu adicionar uma nova instância da linha, ele interrompe (destrói?) O primeiro.

Mas, se eu executar duas instâncias da classe (separadamente, depois de transformá-los em arquivos jar), onde cada instância só abre-se um único segmento, ambos executados simultaneamente e multa.

Eu estou convencido de que o erro é a maneira que eu estou implementando multi-threading.

Todas as sugestões para coisas que procurar? Obrigado! Desculpe pela vaga exemplo.

Foi útil?

Solução

Você não pode presumir que uma classe arbitrária é thread-safe.

Os autores de uma classe deve ser explícito sobre o fio-segurança de suas aulas, mas é muito comum que eles não fazem. Dado que ambientes como Servlets podem ser intrinsecamente mulit-threaded isso pode ser um problema real.

Você precisa estudar a classe e descobrir que, se for o caso, os métodos são thread-safe. É possível que o InstanceOfClassIDontControl classe tem variáveis ??estáticas que estão ficando confuso pelo acesso de vários segmentos. Se você não apenas não controlam a classe, mas não pode sequer ver sua fonte, em seguida, você vai precisar do apoio proprietários.

Outras dicas

Ok, aqui está um exemplo:

public class driver {

    public static void main(String args[])
    {
        Thread x;
        Thread y;

        x = new Thread(new pow());
        y = new Thread(new pow());

        x.start();
        y.start();  
    }
}

public class pow extends Thread {

    public void run() {
        InstanceOfClassIDontControl a = new InstanceOfClassIDontControl();
                a.doVariousProcesses();
    }
}

No exemplo, eu (obviamente) não controlam a classe cujo exemplo é criado e chamado no segmento. Cada segmento pode funcionar por minutos. Mas sempre que um thread concorrente é RAN (neste caso, com y.start ()), ele destrói as ações do objeto chamado na instância run () de x.start ().

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top