[SP-pm] Threads em Perl

Blabos de Blebe blabos at gmail.com
Tue Feb 3 16:29:14 PST 2009


Minha última experiência com fork em Perl foi utilizando o
Parallel::ForkManager, bastante simples de usar. Só não sei se atende
ao que vc precisa.

<pseudo_code>
$pfm = Parallel::ForkManager->new($max_process);
die 'blablabla' unless $pfm;

foreach (@array_of_several_data) {
    $pfm->start() and next;

    &process_one_data($my_current_data);

    $pfm->finish();
}
$pfm->wait_all_children();
<pseudo_code>

Uma outra sugestão é procurar o fernandocorrea at gmail dot com que
ele está escrevendo um módulo de emulação de threads muito
interessante.

Abraços


2009/2/3 Luis Motta Campos <luismottacampos em yahoo.co.uk>:
> Guilherme Luis Eberhardt wrote:
>>
>> Pessoal, boa tarde!
>>
>> Estou desenvolvendo um servidor e cliente em Perl para comunicação
>> via socket.
>>
>> Para agilizar o processo estou utilizando thread no servidor.
>>
>> Meu sistema operacional é: HP-UX B.11.23 U ia64
>>
>> Perl: 5.8.9
>>
>> Meu problema é que para cada requisição que faço do cliente para o
>> servidor, a quantidade de uso de páginas aumenta mesmo quando a
>> thread terminou sua execução.
>>
>> (Ou seja, o consumo de memória do servidor aumenta)
>>
>> Não sei se está ficando algum lixo de memória.
>>
>> O estranho é que o mesmo código sem thread o consumo de memória do
>> servidor fica sempre igual.
>>
>> O comando que estou utilizando para monitorar o consumo de memória é:
>>  kmeminfo -u
>>
>> Antes eu utiliza a função de thread "detach" agora estou usando o
>> "join".
>>
>> Alguém pode me ajudar?
>
> Em poucas palavras, Guilherme: isso é Perl, não Java. As estratégias e as
> vantagens de Java normalmente aqui são mal-vistas por serem ineficientes.
>
> O meu conselho é que você pare de usar threads (e evite o problema de
> reclama memória, que, apesar de parecer simples, não é nada trivial de
> implementar satisfatoriamente em Perl) e passe a usar processos e fork()
> para implementar um servidor. É mais de acordo com a filosofia de trabalho
> do mundo unix, e mais elegante e bem conhecido como solução dentro do mundo
> Perl.
>
> Com sorte, você vai até conseguir usar um dos "servidores em lata" que
> existem no CPAN, e implementar apenas a função que executa o serviço
> (deixando o gerenciamento de servidor totalmente ao cargo de uma biblioteca
> pronta).
>
> Alguém com menos álcool no sangue que eu pode por favor apontar os módulos
> no CPAN para o Guilherme?
>
> Putamplexos!
> --
> Luis Motta Campos is a software engineer,
> Perl Programmer, foodie and photographer.
> _______________________________________________
> SaoPaulo-pm mailing list
> SaoPaulo-pm em pm.org
> http://mail.pm.org/mailman/listinfo/saopaulo-pm
>


More information about the SaoPaulo-pm mailing list