A script futása során alap esetben egymás után hajtja végre az utasításokat, de van amikor szükségünk vban arra, hogy egyszerre több eljárás is menjen. Pl egy pályán mennie kell egyszerre az aknamezőnek is, meg mondjuk egy ki-be csukaható ajtónak is. A threading - azaz a párhuzamos folyamatok - ezt a célt szolgálják.
Lásssunk egy scriptet thread nélkül:
main() { ElsoIdosEljaras(); // meghívja az első eljárást és várakozik annak végéig // ebben az esetben 3 másodpercet MasodikIdosEljaras(); // meghívja a második idős eljárást és várakozik annak végéig // ebben az esetben az elejétől számított 8. másodpercig }
ElsoIdosEljaras() { wait 3; iprintln("3 seconds"); }
MasodikIdosEljaras() { wait 5; iprintln("8 seconds"); }
Itt elindítja az ElsoIdosEljarast, és addig nem megy tovább, amíg annak nem lesz vége, tehát 3 mp-ig. Utána elindítja a MasodikIdosEljaras-t.
main() { thread ElsoIdosEljaras(); // meghívja az első eljárást és tovább megy, NEM várja meg a végét MasodikIdosEljaras(); // meghívja a második idős eljárást és várakozik annak végéig // ebben az esetben az elejétől számított 5. másodpercig }
ElsoIdosEljaras() { wait 3; iprintln("3 seconds"); }
MasodikIdosEljaras() { wait 5; iprintln("5 seconds"); }
Szerintem nem kell tovább magyarázni a dolgot, de itt egy kis ábra ami talán segít megérteni, ha eddig nem ment.
Thread nélkül Thread-dal main() | ElsoIdosEljaras() | wait 3 | iprintln | main() | MasodikIdosEljaras() | wait 8 | iprintln | main() | VÉGE main() | -------------------- | ElsoIdosEljaras() | wait 3 | iprintln() | MasodikIdosEljaras() | wait 5 | iprintln() | | -------------------- | main() | VÉGE
Forrás: http://www.modsonwiki.com/ Fordította, átírta: Ksisu - TotalConversion.hu
|
|
|
Üzenet küldéséhez be kell jelentkezned!
|
|
|