segunda-feira, 25 de junho de 2012

[Programação em C] Utilizando Thread com pthread

Olá pessoal, hoje irei postar um exemplo da utilização de Threads em C utilizando a biblioteca pthread. 

Thread é uma forma de um processo dividir a si mesmo em duas ou mais tarefas que podem ser executadas concorrentemente. (Wikipédia).

Segue o link para download do código:

Clique aqui para fazer o download


6 comentários:

Nuno Santos disse...

Bom Dia!

Tentei correr o exemplo de código que você disponibilizou e resultou nos seguintes erros:


C:\Users\Nuno\Downloads\thread.o:thread.cpp|| undefined reference to `_imp__pthread_exit'|
C:\Users\Nuno\Downloads\thread.o:thread.cpp|| undefined reference to `_imp__pthread_create'|
C:\Users\Nuno\Downloads\thread.o:thread.cpp|| undefined reference to `_imp__pthread_join'|
||=== Build finished: 3 errors, 0 warnings ===|

Porque é que resultam estes erros?

Cumprimentos
Nuno Santos

admin disse...

Precisa compilar com o parâmetro -lpthread , na tua IDE deve ter campo de Compilador e depois de biblioteca, aí tu inclui: -lpthread

Nuno Santos disse...

Eu uso o CodeBlocks! Existe forma de criar uma Thread sem ter que efectuar esses passos?

Existem outras formas?

admin disse...

Para passar parametro no codeblocks:

Project --> Set programs' arguments

Lucas.. disse...

Opa, bom dia!

Parabéns pelo blog, ele já me salvou diversas vezes com meus problemas de programação.

Estou tentando fazer uma aplicação em thread e necessito usar o codebloks para isso, teria como voce fazer um tutorial de como instalar essa bibliotaca nele?

desde já agradeço.

att, Lucas Silva

admin disse...

Olá Lucas, obrigado por visitar o blog. A pthread é padrão, ou seja, não precisa instalar, ela já vem com MinGW. Eu não mexo com CodeBlocks, mas sim com o Falcon C++ (falconcpp.sourceforge.net) a qual eu faço parte. Para compilar um programa que inclui a pthread você tem que adicionar um parâmetro. No Falcon é só ir em propriedades do projeto, aba compilador e em biblitoecas inclui o parâmetro –lpthread. No CodeBlocks deve ser parecido, tente incluir esse parâmetro porque precisa para compilar. Se não conseguir diz aí que eu irei testar com CodeBlocks.