Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  2 1006
Hei. Jeg sitter fast i kodinga mi, uten helt å forstå hvorfor.
Jeg holder på med et program som skal løse såkalte Nonograms.

Problemstillingen min:
Programmet starter med å regne ut alle muligheter for hver rad, og hver kolonne. Fordi disse er uavhengige, og jeg har mange kjerner, lager jeg en ny prosess per rad og kolonne, men jeg sliter med å "få tilbake" det hver prosess har regnet ut.

Jeg en Queue(), som jeg sender med som argument i hver prosess. Når prosessen er ferdig legger den resultatet i køen. Etter dette har jeg en loop med process.join(), for å vente på at alle prosesser er ferdige. Deretter henter jeg ut det som finnes i køen med Queue.get()

Problemet mitt:
På større brett, med over 10*10 ruter, stopper programmet opp, uten å gi noen feilmelding. Jeg har funnet ut at prosessene stopper opp når de skal putte noe i køen, dvs: "Queue.put()". Det virker på de mindre brettene

Jeg finner ingen treff på google på dette problemet, er det noe jeg har oversett?
Bruker du Queue eller multiprocessing.Queue?

Om siste, sjekk ut
Sjekk ut https://docs.python.org/2/library/mu...#all-platforms

Under overskriften "Joining processes that use queues".
Takk Dyret! Det var visst en deadlock i koden. Jeg lagde tråd, joinet tråd, og hentet fra kø. Men tråder lar seg ikke joine før køen er tom.