[Cascavel-pm] Executar funções paralelamente

Nilson Santos Figueiredo Jr. acid06 em gmail.com
Quinta Abril 2 12:42:40 PDT 2009


2009/4/2 Elvio Barbalho <elvio.barbalho em gmail.com>:
> Senhores boa tarde, tenho duas funções gostaria de executar as duas funções
> ao mesmo tempo, ou melhor chamar uma função e não esperar ela terminar para
> chamar a outra função. No meu caso elas acessam dois bancos diferentes e
> populam algumas tabelas. É um processo um pouco demorado para rodar
> sequencialmente.

Se você estiver rodando isso em um Perl compilado com threads e todo
seu processo for thread-safe (bibliotecas de banco de dados, seu
código e outras possíveis bibliotecas utilizadas) você pode usar o
módulo subs::parallel, desenvolvido por mim.

  use warnings;
  use strict;
  use subs::parallel;

  sub primeira : Parallel {
     ...
  }

  sub segunda : Parallel {
    ...
  }

  # bloqueia esperando ambas terminarem
  primeira() & segunda();

Apenas um comentário sobre seu código: não é considerado boa prática
declarar funções em Perl usando a sintaxe:

  sub function() {  }

Com parênteses após a declaração. Isso tem cara de código escrito por
pessoas familiares com outas linguagens de programação.

-Nilson Santos F. Jr.


Mais detalhes sobre a lista de discussão Cascavel-pm