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
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
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"
para manipular os processo basta colocar uma condiçao logo depois de criar e colocar um exit() para terminar o sub processo filho
para mostrar q os processo funciona simultaneamente veja o primeiro exemplo do loop
by hacker fts315
- 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