Joniit Posted February 16, 2016 at 09:30 AM Report Share #593565 Posted February 16, 2016 at 09:30 AM Bom dia pessoal, Eu tenho um WebService (WSDL) que recebe vários pedidos de uma fonte externa num curto espaço de tempo (milésimos de segundo). Esse mesmo WebService posteriormente para cada pedido cria uma thread e processa. Se eu manualmente correr esses pedidos o processos correm de forma correta e sem problemas, mas quando vem de forma "automática" da fonte externa alguns pedidos não são processados. É possível que possa haver conflitos de threads ? Link to comment Share on other sites More sharing options...
tiago.f Posted February 16, 2016 at 10:01 AM Report Share #593567 Posted February 16, 2016 at 10:01 AM É. 🙂 Link to comment Share on other sites More sharing options...
Joniit Posted February 16, 2016 at 10:11 AM Author Report Share #593568 Posted February 16, 2016 at 10:11 AM É. 🙂 Como a melhor maneira de resolver esses conflitos? Synchronized do java nas regiões criticas ? A minha ideia era nessa região critica entrar apenas uma thread de cada vez e depois sim poderem executar livremente e paralelamente. Link to comment Share on other sites More sharing options...
tiago.f Posted February 16, 2016 at 10:24 AM Report Share #593569 Posted February 16, 2016 at 10:24 AM (edited) Não vendo o código não posso ser específico. Há muitas maneira de "resolver" este tipo de problemas. Procurando "java thread conflict" no google, obtemos resultados interessantes. Deixo 2 hipóteses (podes pesquisar por mais): - usar o bloco synchronized - a desvantagem é que perdes os benefícios de executar este código em paralelo. Se usares, não abuses (mínimo código dentro do bloco) 🙂 - reestruturar o programa de modo a que o código executado por cada thread não dependa de nenhum recurso global (variáveis, ficheiros, etc). Assim cada thread corre no seu "mundo" e, julgo eu, não terás conflitos. (Neste cenário, se estiveres a aceder a uma BD, aproveita obviamente o conceito de transacção e bloqueio de tabelas) Espero que pelo menos te ajude a encontrar o caminho certo. Edited February 16, 2016 at 10:26 AM by tiago.f Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now