Dúvida: Prioridade ao chamar uma função

1 resposta
Leco2

Pesoal eu estou com uma dúvida...
Vou tentar me explicar da forma mais fácil possível!

tenho 3 funções x,y e z

tanto a funão y e a z chamam a função x
e na função x contém um laço.

public void funcaoX(){
  for(int i = 0; i<valorQualquer; i++){
    //...
  }
}

public void funcaoY(){
  funcaoX();
}

public void funcaoZ(){
  funcaoX();
}

O que eu queria saber é se eu chamar ao mesmo tempo a função y e z, a função x entra em conflito?
ou o java cria alguma prioridade atenendo uma função primeiro e depois a outra?

1 Resposta

T

“Chamar ao mesmo tempo” = uma thread chama a função Y (que chama X) e outra thread chama a função Z (que chama X)?

Se for isso, não há conflito aparente (em particular, se houver 2 ou mais processadores e cada thread tiver sido escalonada para cada um dos processadores, então efetivamente a função X poderá ser chamada ao mesmo tempo pelas duas funções diferentes.

Entretanto, se você precisar que haja uma “prioridade” (como você está dizendo), é necessário ver o que você quer fazer. Por exemplo, é possível fazer com que apenas uma thread de cada vez possa chamar a função, usando a palavra-chave “synchronized”.

Criado 22 de janeiro de 2010
Ultima resposta 22 de jan. de 2010
Respostas 1
Participantes 2