Je dois écrire un programme, essentiellement un jeu - en bref, il y a des soldats qui collectent des ressources, déchargent des ressources dans la base, s'entraînent et d'autres choses. J'ai lu des articles sur les discussions et comment les utiliser pour un marathon de 6-7 heures, mais je pense avoir besoin d'aide. Donc, je peux écrire un programme très simple avec des threads qui utilisent une fonction, disons une fonction qui imprime "bonjour je suis le numéro de fil: N". Mais, ce que je n'obtiens pas - si par exemple nous recherchons ce programme facile avec la commande print, nous donnons à chaque thread un pointeur vers la fonction et tout est amusant et amusant. Mais, dans mon cas, je dois faire plusieurs fonctions et ce que je ne comprends pas est comment puis-je faire toutes les discussions à travers toutes les différentes fonctions? L'idée principale est d'utiliser mutex et condvars, mais comme je peux donner à chaque thread un seul pointeur de fonction dans ses arguments, je ne vois pas comment je peux accomplir cette tâche, puisque j'ai comme 3-4 fonctions. Je ne pense pas que la création d'un fil pour chaque fonction résout le problème, voici pourquoi:Discussions en programmation C (linux)
Game begins!
Worker 1 is searching
Worker 1 is transporting
Worker 1 unloaded resources to Base station
Worker 2 is searching
Worker 2 is transporting
Worker 2 unloaded resources to Base stationW
Operation not supported
Worker 3 is searching
Worker 3 is transporting
Worker 3 unloaded resources to Base station
.....
b
Not enough resources
Worker 4 is searching
Worker 4 is transporting
Worker 4 unloaded resources to Base station
...
b
Worker 3 is constructing new building barracks
Worker 2 is searching
Worker 2 is transporting
Worker 2 unloaded resources to Base station
....
Worker 3 completed new building barracks
w
Warrior is being trained
Worker 3 is searching
Warrior is ready for duty
cela doit être la sortie du jeu. Ne pas déranger W et B - juste quelques opérations qui doivent remplir certaines conditions pour fonctionner. Donc ma question est - devrais-je utiliser un fil pour chaque fonction? Je ne veux pas que vous résolviez mon problème, je serai juste très heureux de m'éclairer comment je devrais aborder ceci, merci beaucoup!
La modélisation d'objets tels que les soldats en tant que threads est une très mauvaise idée. Repensez votre conception. – nwp
Ceci est ma tâche, je dois le faire de cette façon. Ce n'est pas mon idée. –