[Prévia] [Próxima] [Prévia por assunto] [Próxima por assunto]
[Índice cronológico] [Índice de assunto]

Re: dormindo threads



Rodei os programas de teste que o Fábio e o Danilo mandaram para a 
lista, com o mesmo resultado: o sleep() não afetou o processo como 
um todo, só a thread que o chamou. Como isso pode ser uma coisa 
específica da implementação de pthreads do Linux, fui experimentar 
também no Solaris. Aconteceu a mesma coisa. 

Agora eu estou tão confuso quanto vocês.

Existem por aí textos que afirmam que o sleep() afeta o processo como 
um todo. Este é um deles:

   http://dis.cs.umass.edu/~wagner/threads_html/sect2.html

(Essa página faz parte de um tutorial sobre pthreads que começa em 
http://dis.cs.umass.edu/~wagner/threads_html/. Uma versão postscript 
está disponível em ftp://dis.cs.umass.edu/pub/pthreads.ps.)

Eu não sei se algo mudou no padrão pthreads depois que esses textos 
foram escritos, ou se comportamento do sleep() no Linux e o Solaris
é uma coisa específica desses sistemas e não garantido pelo padrão
pthreads. Me parece que a segunda alternativa é a mais provável.
Nesse caso o programa que usar sleep() para fazer uma thread "dormir  
sozinha" é não portável, só funcionando em sistemas cuja implementação 
de pthreads tenha esse comportamento.

Reverbel