[Powered by Google Translate] NATE HARDISON: Kad esat ieguvuši vairākas programmas atvērts
dators, šķiet, piemēram, viss ir
darbojas tajā pašā laikā.
Piemēram, jūs varētu strādāt ar interneta pārlūku, piemēram,
Firefox vai Internet Explorer, klausoties mūziku uz iTunes,
un rakstot eseju ar Word.
Tomēr, saskaņā ar kapuci, programmas faktiski
palaist pa vienam.
Tas ir darbs no operētājsistēmas, Windows, Mac OSX, vai
Linux, lai pārvaldītu katru no šiem atsevišķos procesos, jo
programmas ir zināms, un pārslēgties starp tiem tā, ka tad, kad jūs
aiziet no pārbaudot savu Facebook lapu, lai strādā jūsu eseja
atkal, Word ir viens, kas darbojas.
>> Dažreiz, lai gan, mēs vēlamies programmas paši, lai varētu
darīt vairākas lietas, piemēram, tas, too.
Ja jūs esat līdzīgi man, jūs, iespējams, ir ķekars
dažādām cilnēm atvērt savu interneta pārlūku, viens e-pasts,
viens ar kalendāru, un tā tālāk.
Mēs varētu uzskatīt katru cilni kā atsevišķu programmu vai procesu,
piemēram, Google Chrome nav, bet daudzas programmas izmanto
vieglākas svara versija procesu, ko sauc par pavedienu.
>> Pavediens ir tikai vēl viens vienības apstrādes komplekts
instrukcijas vai kods, kas var "palaist", citējot likt pēdiņas beigās,
vienlaikus ar citiem diegiem.
Tas ir tas, kas ļauj, lai jūs varētu pārlūkot Facebook
klausoties man fonā vai ir divas
YouTube video spēlē tajā pašā laikā.
Tātad, šī vispārējā tēmu, kas pazīstams kā laiksakritība, parasti
nenāk klajā tik agri datorzinātņu kursus
jo zemāka līmeņa detaļas nepieciešama diskusija par
operētājsistēmas un tamlīdzīgi.
Tomēr programmēšanas valodu mēs izmantojam pie
sākumā CS50, Scratch, sniedz dažus švītīgs rīkus
vieglāk rakstīt programmas ar vairākām lietām
notiek uzreiz.
>> Kad jūs veidot Scratch programmas, jūs pastāvīgi
strādājot ar diegiem.
Katrs Scratch skripts, kas ir koda bloku, kas sākas ar
viens no "kad" puzzle gabalus, var uzskatīt
kā atsevišķu pavedienu.
Apskatīsim vienkāršu Scratch programmu, lai redzētu kā tas darbojas.
>> Lūk, mēs esam ieguvuši zivju objektu, vai Sprite, ar diviem skripti
ka gan sākums, kad mēs noklikšķiniet maz zaļo karogu pogu.
Pirmais skripts kontrolē zivs kustības.
Kad zaļais karogs ir noklikšķinājuši, zivis izpaužas ievietots
kreisajā pusē no ekrāna, ko sauc par posmu,
saskaras ar tiesībām.
Tad, norādījumu kopums, kas rādīsim mūžīgi, kamēr mēs
apturēt programmu, zivis slīd uz labo pusi,
pagriežas, iet atpakaļ uz kreiso pusi, un
pagriežas atkal.
Otrais skripts kontrolē zivs domāšanas procesu.
Izrādās, ka tas ir izsalcis zivis.
Tātad, pēc gaida 3 sekundes, zivis domā,
"Es esmu izsalcis," par ceturto sekundi.
Šis skripts arī vada mūžīgi.
Un kā mēs redzam, no braukšanas programmas, noklikšķinot
Zaļā karoga, gan skriptus šķiet izpildīt
vienlaicīgi.
Zivis pārvietojas un domā tajā pašā laikā.
>> Tā kā slikta zivs izskatās tik izsalkuši, pieņemsim pievienot dažus
sierveidīgs inhalācijas par to ēst.
Cerams, viņi būs ne sadalīties ūdenī.
Kad mēs pievienot otrajā Sprite, mēs arī varētu
pievienot skriptus atbilst šo Sprite.
Un, tātad, tur būs vēl viens komplekts
diegi ka rādīsim.
Nodrošināt lietotājam mūsu programmas kontroli pār kad
izsalcis zivis kļūst pārtiku, pieņemsim, ka ikreiz, kad kosmosa
Josla ir hit vai siera inhalācijas parādās uz skatuves, lai
zivis ēst.
Pirms mēs hit starpdevējs, mēs vēlamies, lai saglabātu cheesy
inhalācijas paslēpta, lai zivis nevar redzēt.
Lai to izdarītu, mums ir nepieciešama pāris skripti
sierveidīgs inhalācijas Sprite.
Pirmais skripts, zaļā karoga, vienkārši paslēpt pārtiku.
Atšķirībā no citām skripti mēs esam raksta, šo vienu neļaus
darboties mūžīgi.
Tas sākas un beidzas ļoti ātri, labi, ja mēs noklikšķiniet
Zaļā karoga poga.
>> Nākamais skripts mums būs jāgaida starpdevējs būt
nospiests pirms izpildes.
Mēs varam zvanīt gaidīt lietotāja ievadi "gaidīšanas" vai "klausīšanās"
par notikumu.
Un kods, kas izpilda tad, kad notikums ir saņemts vai
dzirdējis sauc notikumu apstrādes kodu.
Mūsu starpdevējs notikumu apdarinātājs rādīs cheesy inhalācijas par
ekrāns, lai zivis var ēst.
Šajā brīdī, viss meklē labi.
>> Nākamā lieta, kas mums jādara, ir izdomāt, kā nokļūt
zivs saprast, ka tur ir pārtikas ēst.
Pieņemsim pievienot citu pavedienu uz zivīm, kas pastāvīgi
pārbaudes, vai tas ir pieskaras cheesy inhalācijas.
Mēs to darām ar atsevišķu pavedienu, jo tādā veidā mēs varam
pastāvīgi pārbaudītu pārtiku.
Pretējā gadījumā mēs gribētu tikai varētu periodiski pārbaudīt pārtikas
starp slīdamību, pagrieziena apkārt, gaida, vai domājot.
>> Labi.
Tagad pieņemsim palaistu mūsu Scratch programmu.
Kā jau gaidīts, pārtikas nekavējoties slēpj un
izsalcis zivis peld uz priekšu un atpakaļ, tāpat kā pirms tam.
Kad mēs hit starpdevējs, tad cheesy pufi nonāk domām,
un izsalcis zivis saka Whoo.
Bet pagaidiet, tas ir dīvaini.
Kā tas nākas, zivs "Es esmu izsalcis" Domas pārtrauc
citi sīkumi?
Tas ir tāpēc, ka mums nav noteiktas nekādas koordinācijas
starp trim zivju skriptus.
Katrs darbojas savā pavedienu, aizmirsusi to, ko
citi dara.
Pieņemsim salabot, pirms mēs doties tālāk.
>> Koordinācija starp diegiem ir grūts uzdevums, jo mēs
nav skaidra pār kad katrs pavediens iet kontroli vai
nedarbojas.
Lai nosūtītu ziņu no viena pavediena uz otru, mums būs nepieciešama
izmantot mainīgo, mēs varam noteikt, vai rakstīt, jo viens pavediens
un lasa otru.
Pieņemsim izveidot mainīgo sauc foodFound ka mēs varam noteikt, lai
taisnība, kad zivis nokļūst uz sierveidīgs inhalācijas.
Nu, protams, mēs vēlamies, lai pārliecinātos, ka mēs noteikti to
viltus sākotnēji.
Tad, zivs domāšanas pavedienu, mēs pārbaudām, vai
zivis ir atrodama pārtika pirms attēlot "Es esmu izsalcis"
domāja burbulis.
>> Tagad darbojas programma atkal mēs redzam, ka zivis
nesaņem pārtraukts ar domām par bada, kad
sierveidīgs inhalācijas ir out.
Galīgo Problēma mums ir, ka cheesy pufi neapmeklē
prom pēc zivīm, citējot likt pēdiņas beigās, "ēd" viņiem.
No zivju skripti, nav viegls veids, kā slēpt cheesy
pufi, tāpēc mums ir nepieciešams, lai nosūtītu ziņu uz cheesy inhalācijas
elfa, lai slēptu sevi.
Mēs varētu darīt ar citu mainīgo ka cheesy pufi
elfa ir pieejami, kā arī zivju Sprite.
>> Tomēr, tur ir tīrāks veids, kā to šajā gadījumā,
jo tā vietā, nosūtot ziņu uz skriptu, kas ir
kaut kur pa vidu izpildes, mēs varam nosūtīt
ziņu skriptu, kas gaida, lai sāktu.
Mēs to darām, kam zivis pārraidīt pasākumu, vienu mēs
zvanīt ēdis.
Tad mēs izveidot skriptu cheesy inhalācijas, kas būs
gaidīt, lai šo notikumu.
Tas ir līdzīgi Space Bar gadījumā, izņemot šī
laiks, lietotājs nav viens tieši izraisot notikumu.
Tagad viss, kas mums jādara, ir noteikt mūsu foodFound mainīgs atpakaļ
līdz nepatiesa, un tagad mēs varam dot izsalcis zivis par daudz
porcijas sierveidīgs uzkodas, kā tā vēlas.
>> Tāpēc nav pārāk slikti, vai ne?
C, rakstot vairāku vītņotiem programmas ir daudz sarežģītāka,
bet pamati ir vienādi.
Anyway, es ceru, ka jums ir liels laiks celtniecības daži jautri
vienlaicīgu programmas nulles.
Mans vārds ir Nate Hardison.
Tas ir CS50.