[Powered by Google Translate] Nate HARDISON: Meta inti ħadthom ltqajna programmi multipli miftuħa fuq kompjuter, jidher li huwa simili kollox l- running fl-istess ħin. Per eżempju, inti tista 'tkun taħdem fil-web browser bħal Firefox jew Internet Explorer, jisimgħu l-mużika fuq iTunes, u kitba ta 'esej mal-Kelma. Madankollu, taħt il-barnuża, il-programmi fil-fatt run wieħed kull darba. Hu l-impjieg tas-sistema operattiva, Windows, Mac OSX, jew Linux, biex tmexxi kull wieħed minn dawn il-proċessi separati, bħala l- programmi huma magħrufa, u jaqilbu bejniethom b'tali mod li meta inti jmorru minn verifika Facebook page tiegħek li taħdem fuq essay tiegħek għal darb'oħra, Word huwa dak li l-ġirja. Kultant, għalkemm, irridu programmi ruħhom biex ikunu jistgħu biex tagħmel affarijiet multipli bħal dan, wisq. Jekk int simili me, inti probabilment jkollhom mazz ta ' tabs differenti miftuħa fil-web browser tiegħek, waħda għal email, wieħed bil-kalendarju, u l-bqija. Nistgħu jittrattaw lil kull tab bħala programm separat jew proċess, bħall-Google Chrome ma, iżda ħafna programmi juża eħfef piż verżjoni ta 'proċess imsejħa ħajt. A ħajt huwa biss ieħor unità ta 'proċessar, sett ta' istruzzjonijiet jew kodiċi li jistgħu "run", unquote kwotazzjoni, flimkien ma 'ħjut oħra. Dan huwa dak li jagħmilha possibbli għalik li jibbrawżjaw Facebook li jingħata widen lill lili fl-isfond jew li jkollha żewġ YouTube videos jilagħbu fl-istess ħin. Għalhekk, dan is-suġġett ġenerali, magħrufa bħala concurrency, tipikament ma toħroġ daqshekk kmieni fil-korsijiet tax-xjenza tal-kompjuter minħabba d-dettalji 'livell aktar baxx jeħtieġu diskussjoni ta' sistemi operattivi u simili. Madankollu, il-lingwa ta 'programmar li nużaw fil- bidu ta 'CS50, Scratch, tipprovdi ċerti għodod nifty li jagħmilha aktar faċli biex jiktbu programmi ma 'affarijiet multipli għaddejjin f'daqqa. Meta inti tibni programmi Scratch, int dejjem jaħdmu ma 'ħjut. Kull b'kitba Scratch, li huwa blokk kodiċi li jibda bil wieħed mill-biċċiet "meta wieħed" puzzle, jistgħu jiġu meqjusa bħala ħajt separata. Ejja nħarsu lejn programm scratch sempliċi biex tara kif taħdem din. Hawnhekk, konna ltqajna oġġett ħut, jew Sprite, b'żewġ skripts li kemm jibdew meta aħna ikklikkja l-buttuna ftit bandiera aħdar. L-iskript 1 jikkontrolla mozzjoni tal-ħut. Meta l-bandiera aħdar huwa għafast, il-ħut gets mqiegħda fuq in-naħa tax-xellug tal-iskrin, imsejjaħ il-fażi, jiffaċċjaw lejn il-lemin. Imbagħad, fil-sett ta 'struzzjonijiet li ser jimxu dejjem, sakemm aħna twaqqaf il-programm, il-ħut glides biex il-lemin, dawriet madwar, tmur lura għall-naħa tax-xellug, u dawriet madwar darb'oħra. L-iskript 2 jikkontrolla proċess tal-ħsieb tal-ħut. Jirriżulta li dan huwa ħut bil-ġuħ. Allura wara stennija għal 3 sekondi, il-ħut se jaħsbu, "Jien bil-ġuħ," għat-tieni 4. Din l-iskrittura tmexxi wkoll dejjem. U kif naraw, minn tħaddim tal-programm billi tikklikkja l- bandiera aħdar, iż-żewġ skripts jidhru li jesegwixxi simultanjament. Il-ħut jiċċaqlaq u jaħseb fl-istess ħin. Peress li l-ħut foqra jistenna hekk bil-ġuħ, ejja żid f'xi puffs Logged għal dan li jieklu. Nisperaw li mhux se jiddiżintegraw fl-ilma. Meta aħna żid fl-Sprite tieni, aħna ser ikunu wkoll kapaċi li żid skripts li jikkorrispondu għal dak Sprite. U, għalhekk, se jkun hemm sett ieħor ta ' ħjut li ser jimxu. Biex tagħti l-utent ta 'programm ta' kontroll tagħna fuq meta l- ħut bil-ġuħ gets ikel, ejja ngħidu li kull meta l-Ispazju Bar hija milquta, puffs Logged jidhru fuq l-istadju għall- ħut li jieklu. Qabel ma aħna laqat il-bar-Ispazju, aħna ser jixtiequ jżommu l Logged puffs moħbija b'tali mod li l-ħut ma tistax tara minnhom. Biex tagħmel dan, aħna ser bżonn ta 'ftit skripts għall- puffs Logged Sprite. L-iskript ewwel, il-bandiera aħdar, se biss jaħbu l-ikel. B'differenza mill-iskripts oħra konna bil-miktub, dan wieħed mhux se żżomm running dejjem. Se jibdew u jispiċċaw malajr ħafna, id-dritt meta aħna ikklikkja il-buttuna ħadra bandiera. L-iskrittura li jmiss għandna se tistenna għall-Avukatura Ispazju li tkun ippressat qabel ma teżegwixxi. Nistgħu sejħa ta 'stennija għall jintuza mill-utent "stennija" jew "smigħ" għal avveniment. U l-kodiċi li tesegwixxi meta avveniment huwa riċevut jew sema hija msejħa kodiċi tqandil avveniment. Ispazju Bar tagħna avveniment handler se juri l-puffs Logged fuq l-iskrin sabiex il-ħut jistgħu jieklu lilhom. Fuq dan il-punt, kollox qed ifittxu tajba. Il-ħaġa li jmiss li għandna bżonn tagħmel huwa li insemmu kif tikseb il-ħut li tirrealizza li hemm ikel li jieklu. Ejja żid ħajt ieħor l-ħut li kontinwament kontrolli jew le huwa jmissu l-puffs Logged. Aħna nagħmlu dan fil-ħajt separata peress li l-mod nistgħu jivverifika kontinwament għall-ikel. Inkella, aħna'd biss tkun tista 'perjodikament jiċċekkja għall-ikel fl bejn gliding, tidwir madwar, stennija, jew taħseb. OK. Issa ejja jimxu programm Scratch tagħna. Kif kien mistenni, l-ikel immedjatament ġlud u l- ħut bil-ġuħ swims quddiem u lura eżatt bħal qabel. Meta aħna laqat il-bar-Ispazju, l-puffs Logged jidħlu fis-dawl, u l-ħut bil-ġuħ jgħid whoo. Imma stenna, li l-stramb. Kif come tal-ħut "Jien bil-ġuħ" tinterrompi ħsieb il- ieħor Jittieħed? Dan huwa għaliex aħna ma tistabbilixxi ebda koordinazzjoni bejn l-iskripts ħut 3. Kull tkun qed taħdem fil-ħajt tagħha stess, tagħtix każ għal dak il- jagħmlu l-oħrajn. Ejja jiffissaw dan qabel nimxu fuq. Il-koordinazzjoni bejn ħjut huwa kompitu diffiċli peress li aħna ma jkollhomx kontroll espliċitu fuq meta kull ħajt runs jew ma run. Biex tibgħat messaġġ minn ħajt għall-ieħor, aħna ser bżonn jużaw varjabbli li nistgħu jistabbilixxu, jew jiktbu, f'waħda ħajt u aqra fl-ieħor. Ejja toħloq foodFound varjabbli msejħa li nistgħu stabbiliti biex veru meta l-ħut jibda fil-puffs Logged. Ukoll, naturalment, aħna tixtieq li tagħmel ċert li aħna stabbiliti biex FALZ inizjalment. Imbagħad, fl ħajt ħsieb tal-ħut, aħna ser tikkontrolla biex tara jekk l-ħut sabet ikel qabel li juri l-"jien bil-ġuħ" maħsub bużżieqa. Issa, tħaddim tal-programm mill-ġdid, naraw li l-ħut ma nikseb interrott mal-ħsibijiet tal-ġuħ meta l- puffs Logged huma barra. Il-problema finali li għandna hija li l-puffs Logged ma jmorrux barra wara l-ħut, ikkwota unquote, "jiekol" minnhom. Mill-iskripts ħut, hemm ebda mod faċli biex jaħbu l-Logged puffs, għalhekk għandna bżonn biex jibgħat messaġġ lill-puffs Logged Sprite biex jaħbu innifsu. Stajna nagħmlu dan ma 'varjabbli li l-puffs Logged Sprite ikollu aċċess għal, kif ukoll il-Sprite ħut. Madankollu, hemm mod aktar nadifa biex tagħmel dan f'dan il-każ, peress minflok jibgħatu messaġġ lill b'kitba li l- x'imkien fin-nofs ta 'eżekuzzjoni, nistgħu tibgħat il- Messaġġ għal b'kitba li l-stennija biex tibda. Aħna nagħmlu dan billi jkollu l-ħut xxandar avveniment, wieħed aħna ser sejħa jittiekel. Imbagħad, aħna ser toħloq b'kitba għall-puffs Logged li ser ikollu stenna għal dan l-avveniment. Dan huwa simili għall-avveniment Bar Ispazju, ħlief li dan il- żmien, l-utent mhux l-waħda direttament jiskatta l-avveniment. Issa kollha għandna nagħmlu huwa stabbilit lura tagħna varjabbli foodFound biex foloz, u aħna issa jistgħu jagħtu l-ħut bil-ġuħ minħabba li ħafna porzjonijiet ta 'puffs Logged kif irid. Allura mhux wisq ħażina, right? Fl C, bil-miktub multi-kamin programmi hija aktar ikkumplikata, iżda l-affarijiet bażiċi huma l-istess. Xorta waħda, I hope ikollok ħafna ħin bini xi gost programmi fl-istess ħin fl-Scratch. Jisimni Nate Hardison. Dan huwa CS50.