Nylon Tecnologia
Mudamos para um dominio proprio.

Acesse nosso novo forum.

http://crawlersnetwork.com/

[tutorial] fork em perl

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

[tutorial] fork em perl

Mensagem por hacker fts315 em Dom Ago 26, 2012 7:06 pm

bom galera muitas vezes quando criamos um programa ele fica preso em um loop e so executar o resto do codigo quando sai do loop, isso pq o programa so usa um unico processo para se executar entao fica limitado apenas a unico processo pai (thread), veja um exemplo

Código:
#!/usr/bin/perl

while(1)
{
  print "hacker" . "\n";
}

while(1)
{
  print "fts315" . "\n";
}

na source acima ele tem dois loops, ambos sao loop infinito quando executar o script nunca vai chegar no segundo loop isso pq vai ficar preso no primeiro =/ , uma maneira de executar o segunda e fazer o script usar sub-processos para o mesmo (thread) q no caso e o fork, so lembrando mesmo q esteja usando simultaneamente o terminal e apenas um entao se der um pause no terminal por exemplo system("pause") ele vai pausar o terminal e nao vai exibir nada ate apertar enter, para usar fork basta atribuir ele a uma variavel

Código:
#!/usr/bin/perl

$fts = fork();

pronto na variavel recebeu o pid do processo, depois q vc chama a funçao fork ele ja criar um sub-processo e da parte dele pra baixo ele vai executar entao na source abaixo vai aparecer duas vezes "hacker fts315"


Código:
#!/usr/bin/perl

$fts = fork();

print "hacker fts315 \n";

para manipular os processo basta colocar uma condiçao logo depois de criar e colocar um exit() para terminar o sub processo filho

Código:
#!/usr/bin/perl

$fts = fork();

if($fts == 0)
{
  print "isso e o sub-processo";
  exit(0);
}

print "hacker fts315 \n";

para mostrar q os processo funciona simultaneamente veja o primeiro exemplo do loop

Código:
#!/usr/bin/perl

$fts = fork();

if($fts == 0)
{
  while(1)
  {
      print "hacker" . "\n";
  }
  exit(0);
}

while(1)
{
  print "fts315" . "\n";
}

by hacker fts315


[Você precisa estar registrado e conectado para ver esta imagem.]
avatar
hacker fts315
Membro

Mensagens : 53
Pontos : 4035
Reputação : 32
Data de inscrição : 12/08/2012

Ver perfil do usuário http://endoffile.umforum.net

Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum