Ciao, grazie della risposta, io lavoro con Linux, però, facendo delle prove ho scoperto che in reltà non importa crearsi un Pool di thread come pensavo, o meglio posso chiamare più volte:
threadint=pthread_create(&t,NULL,threadfunction,NU LL);
senza che il thread sia terminato: non vi sono errori di runtime e tutto sembra andare......
Per essere + chiaro, questo codice funziona:
#include <pthread.h>
#include <iostream>
#include <stdio.h>
void *threadfunction (void* p);
int main(int argc, char **argcv)
{
pthread_t t;
int inth1 = 0;
char* p1="stringa 1";
char* p2 = "stringa 2";
inth1 = pthread_create(&t, NULL,threadfunction,(void*)p1);
inth1 = pthread_create(&t, NULL,threadfunction,(void*)p2);
while (true){
std::cout<<"Main execution"<<'\n';
}
};
void *threadfunction (void* p)
{
char* a = (char*) p;
while (true)
std::cout << "Thread execution : " << a << '\n';
};
//-------------------------------------------------
//(g++ ......... -lpthread) x compilare
//---------------------------------------------------
I due threads vengono istanziati 'sulla stessa variabile t' e tutto funziona, non sono molto esperto di multithreading comunque non capisco a cosa serva allora la variabile t che viene passata alla pthread_create.
In realtà quindio non ho bisogno di nessun thread pool???????
Sembra di no!!
Spero che qualcuno aggiunga note o considerazioni..
Ciao

Rispondi quotando