[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.