CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[PYTHON]Partage de variables entre plusieurs processus

PepinCadavre
PepinCadavre
Niveau 8
20 mars 2018 à 19:34:42

Bonjour

Dans mon programme je définit plusieurs variables. Ensuite je créé des processus fils et petits fils avec os.fork() qui incrémentent ces variables (chaque processus attend que tous ses fils aient terminé pour reprendre leur exécution).

Mais je ne voit pas comment faire en sorte que la variable modifiée par un fils soit ensuite prise en compte comme telle par son père, le père considère l'état de la variable AVANT l'exécution du processus fils et non pas APRES.

Merci de votre aide

PepinCadavre
PepinCadavre
Niveau 8
20 mars 2018 à 21:56:16

https://image.noelshack.com/fichiers/2018/12/2/1521579337-capture-du-2018-03-20-21-54-00.png

En gros comment faire pour que père et fils affichent tous les deux 10?

int02h
int02h
Niveau 6
20 mars 2018 à 22:17:30

Il faut faire communiquer les processus entre eux (pipe, socket unix), créer un fichier à la main pour échanger des données ou utiliser de la mémoire partagée

darkdark
darkdark
Niveau 9
21 mars 2018 à 13:23:47

Pourquoi utiliser de nouveaux processus plutôt que des threads ? Un fork sert normalement à lancer un nouveau programme.

RegleGraduee
RegleGraduee
Niveau 70
21 mars 2018 à 19:31:38

Il faut utiliser ça apparement https://docs.python.org/33/library/multiprocessing.html

godrik
godrik
Niveau 30
21 mars 2018 à 21:36:40

Au niveau du systeme les processus ne partagent pas de memoire.
Mais tu peux creer un segment apecial de memoire qui sera commun a plusieurs processus. Un segment de memoire partage.
Dans les solutions annexes, tu peux faire communiquer des process a travers le susteme de fichier avec des fifo, des pipes et ce genre de chose.
Alternativement, utilises des threads au lieu de processus.

Sous forums
  • Aide à l'achat Mac
  • Steam Deck
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Macintosh
  • Hardware
La vidéo du moment