Szálak, folyamatok

Ismertető

Ez a rész a szálak használatát segítő modulokat mutatja be. A szálak használata a Pythonban opcionális, nem minden értelmezőben működik! (Windowson, Linuxon megy!). Találkozni fogunk még olyan modulokkal is, melyek külső folyamatok indítását végzik Linuxon és Windowson.

Prasanna Seshadri (An Introduction to Thread Programming) oldalán egy nagyon egyszerű és gyakorlatias, használható leírás van a szálakról.

A szálakkal egyszerre több dolgot is csinálhatsz a programban. Minden szál saját folyamatirányítással rendelkezik. Míg az egyik szál adatokat olvas egy fájlból, a másik a képernyőt frissítheti.

A Python globális értelmezÅ‘ zárat használ annak megelÅ‘zésére, hogy két szál egyszerre próbálja ugyanazt az adatot módosítani-elérni. Egy idÅ‘ben egy szál kódja hajtódik végre, a szálak közötti váltás automatikusan történik. (emiatt látszólag párhuzamos a szálak futása). A váltásra akkor is sor kerül, ha egy szál várakozik – például a felhaszáló adatbevitelére, vagy a hálózatról történÅ‘ letöltés során ha adatra kell várakoznia.

A globális zár használata azonban nem elég a problémák megelÅ‘zésére. Ha több szál kísérli meg ugyanazt az adat-objektumot elérni, lehetséges hogy az hibás állapotba kerül, pl. egyszerre írnak bele két eltérÅ‘ értéket. Vagy egy fájlt az egyik folyamat olvas, mialatt a másik írja…

A fenti probléma elkerülésére objektum zárolást használhatsz. A zárolt objektumot egyszerre egy szál birtokolhatja, így biztosítható a szálak közötti ütközések elkerülése.

A folyamatok

A mai operációs rendszereken minden program a saját folyamatában fut. Gyakran történik új folyamat indítás, például programok használata esetén (parancssori utasítás kiadásakor is). A Python lehetővé teszi a programból új programok indítását.

Post Comments

You must be logged in to post a comment.