Ciao a tutti, devo scrivere un codice C++ (sarà il processo A) che faccia questo:
1) sta in ascolto su una porta socket locale xxx (comunica con altri processi..)
2) quando riceve una richiesta sulla porta xxx deve avviare un thread che si prenda carico del compito da svolgere, lo faccia e, quando finito, invii un dato ad un altro processo B su una porta locale yyy.
Il mio problema è questo: devo prevedere un pool di threads? dato che il main può accettare più richieste contemporanee dovrà poter avviare più thread serventi contemporanei, i quali una volta finito il loro compito cesseranno la propria esecuzione. Come si fa questo in C++?
Riporto un semplice codice per singolo thread:
#include <pthread.h>
void *faiqualcosa( void *ptr );
main()
{
pthread_t thread1;
int iret1;
while (true){
//sta in ascolto su porta xxx da cui riceve 'message'
//quando arriva una richiesta avvio il thread........
iret1 = pthread_create( &thread1, NULL, faiqualcosa,(void*) message);
exit(0);
}
void *faiqualcosa( void *ptr )
{
//codice per inviare dati via socket su porta yyy
}
Secondo voi questo codice funziona?
Se ad es arriva la richiesta1, viene creato il primo thread, e prima che il thread abbia finito arrivi la richiesta2 vado a istanziare un nuovo thread sulla variabile iret1 .....Secondo voi come si fà insomma????????
Grazie a tutti.
ciao da franzxx