Bonjour à tous, j'ai deux petites questions concernant les threads, j'espère que vous pourrez m'aider.
pour illustrer mon propos, j'utilise l'exemple suivant :
dans ce code deux choses ne fonctionnent pas :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 void func(int num){ cout << "thread numero " << num << "peut lire l'entier " << ent << endl; } int main(){ int i,ent; ent=15; boost::thread_group group; for(i=0;i<10;i++){ group.create_thread(&func(i)); } }
1) passer le paramètre "i" dans "group.create_thread(&func(i))" , première question y a-t-il une syntaxe correcte pour faire ça?
2) sachant que je suis certain qu'il n'y aura pas de conflit sur la lecture de l'entier "ent" dans mes threads, est-il possible d'accéder en lecture ou en écriture à cet entier initialisé dans le main depuis mes threads sans utiliser les mutex ou autre trucs compliqués. Initialiser "ent" en tant que variable global me parait pas propre du tout, mais est-ce une(la seule) solution valable ?
Voilà en espérant avoir été clair et que vous saurez m'aider.
Merci
Partager