PDA

Visualizza la versione completa : [C] Programmazione concorrente


MarkinoVP
23-01-2007, 20:59
ciao a tutti,

devo fare un progeto che richiede l'uso della programmazione concorrente (possibilmente in c).
sn ancora agli inizi e devo capire come creare thread in c...

cercando degli esempi in internet ho trovato questo codice:

#include <stdio.h>
#include <pthread.h>

void print_msg(void *ptr);

void main() {
pthread_t thread1, thread2;
char *msg1="Thread 1";
char *msg2="Thread 2";
if(pthread_create(&thread1,NULL,(void *)&print_msg,(void *)msg1)!=0) {
perror("Errore nella creazione del primo thread.\n");
exit(1);
}
if(pthread_create(&thread2,NULL,(void *)&print_msg,(void *)msg2)!=0) {
perror("Errore nella creazione del secondo thread.\n");
exit(1);
}
pthread_join(thread1,NULL);
pthread_join(thread2,NULL);
exit(0);
}
void print_msg(void *ptr) {
printf("%s\n",(char *)ptr);
}

il problema è che compilandolo, ho un errore...
fatal error C1083: Impossibile aprire il file inclusione "pthread.h": No such file or directory

qualche suggerimento?????????

anche se per caso qualcuno avesse qualche giuda teorica... così mi documento da solo va benissimo ugualmente!!!

ciao e grazie in anticipo :D

MItaly
23-01-2007, 22:30
Pthread.h è un header Unix/Linux; se stai lavorando sotto Windows (il messaggio di errore a naso mi sembra di VC++) non va bene.

MarkinoVP
24-01-2007, 00:26
si, sto lavorando sotto windows... con un visula studio.net 2003

:dottò: mi è arrivata voce che per utilizzare quella libreria devo aggiungere una dll o un .lib....

ora cerco di trovare qualcosa onLine!!

se qualcuno ha qualche suggerimento... è sempre ben accetto!!!!!!!!!!!!!!!!!!!! :dhò:

zero85
24-01-2007, 05:39
http://sourceware.org/pthreads-win32/ personalmente non l'ho mai testata in quanto ho sempre utilizzato le api native di windows per creare eseguibili multithreading, ma dovrebbero fare al caso tuo

MItaly
24-01-2007, 16:02
Personalmente credo che lavorando su Windows ti convenga usare le API native di tale sistema operativo... :dottò:

njno
25-01-2007, 01:29
Anche io in questo momento sto creando un'applicazione distribuita concorrente, però a differenza tua sto usando il dev-c++. Io specifico al linker (nella sezione opzione progetto) il percorso dove trovare le librerie necessarie, in particolare
C:/Programmi/Dev-Cpp/lib/libwsock32.a
C:/Programmi/Dev-Cpp/lib/libws2_32.a

Spero ti possa essere di aiuto.

Antonio

MarkinoVP
25-01-2007, 12:08
Originariamente inviato da MItaly
Personalmente credo che lavorando su Windows ti convenga usare le API native di tale sistema operativo... :dottò:

secondo me hai ragione... infatti seguirei volentieri il tuo consiglio se sapessi come fare!!!!! :confused: :confused: :confused:

MarkinoVP
25-01-2007, 12:10
Originariamente inviato da njno
Anche io in questo momento sto creando un'applicazione distribuita concorrente, però a differenza tua sto usando il dev-c++. Io specifico al linker (nella sezione opzione progetto) il percorso dove trovare le librerie necessarie, in particolare
C:/Programmi/Dev-Cpp/lib/libwsock32.a
C:/Programmi/Dev-Cpp/lib/libws2_32.a

Spero ti possa essere di aiuto.

Antonio

interessantissimo.... anche io ho il devCpp e metterò subito in pratica le tue dispense... poi ti faccio risapere!!!!

grazie 1000 per ora!! :smack:

MItaly
25-01-2007, 16:32
http://msdn2.microsoft.com/en-us/library/ms681917.aspx

MarkinoVP
26-01-2007, 19:33
Originariamente inviato da MItaly
http://msdn2.microsoft.com/en-us/library/ms681917.aspx

:sbav: msdn's power!!!!!!!!! :D
grazie!!

Loading