[Powered by Google Translate] Nate HARDISON: Kui sul on mitmeid programme avada edasi arvuti, tundub, nagu kõik on töötab samal ajal. Näiteks võite olla töötab veebibrauseris nagu Firefoxi või Internet Explorer, kuulata muusikat iTunes, ja essee kirjutamiseks Wordi. Kuid kapoti alla, programmid tegelikult käivitada ühe korraga. See on töö, operatsioonisüsteem Windows, Mac OSX või Linux, hallata iga sellise eraldi protsessid, nagu programmid on tuntud ja neid vahetada nii, et kui sa minna kontrollida oma Facebook leht kallal oma essee jälle sõna on see, et kandideerib. Mõnikord, kuigi me tahame programme ise suutma teha mitmeid asju niimoodi ka. Kui sa oled nagu mina, siis ilmselt on hunnik erinevaid kaarte avada oma veebibrauseris, üks e-posti, üks kalender ja nii edasi. Võiksime ravida iga sakk eraldi programm või protsess, nagu Google Chrome ei, kuid paljud programmid kasutavad kergemad kaalu versioon protsessi nimetatakse teema. Niit on lihtsalt üks ühik töötlemine, komplekt juhiseid või koodi, mida saab "sisse sõita", tsiteerin Tsitaat lõppeb, samaaegselt teiste niidid. See on see, mida võimaldab teil sirvida Facebook kuulamise ajal mind taustal või kaks YouTube'i videod mängida samal ajal. Niisiis, see üldine teema, mida tuntakse kokkulangevus, tüüpiliselt ei tule nii vara üleval infotehnoloogia kursused sest madalama taseme üksikasju nõuavad arutelu operatsioonisüsteemide jms. Kuid programmeerimiskeelt me ​​kasutame juures alguses CS50, Scratch, annab mõned vahva tööriistad oleks lihtsam kirjutada programme mitme asjad toimub korraga. Kui teil ehitada Scratch programmid, sa oled pidevalt töö lõngaga. Iga Scratch skripti, mis on kood plokk, mis algab üks "kui" puzzle tükki, võib kujutleda eraldi teema. Vaatame lihtsat Scratch programmi, et näha, kuidas see toimib. Siin on meil kala objekti või sprite, kaks skripte et nii algus kui me nuppu väike roheline lipp nuppu. Esimene skript kontrollib kala liikumisandmeid. Kui roheline lipp on klõpsatud, kala saab paigutada vasakul pool ekraani, nimetatakse etapp, ees paremal. Siis, juhistega, et saad joosta igavesti, kuni me programm peatada, kala libiseb paremale küljele, pöördub ümber, läheb tagasi vasakule küljele ja pöördub ümber uuesti. Teine skript kontrollib kala mõttekäigust. Selgub, et see on näljane kala. Nii et pärast oodanud 3 sekundit, kala arvavad, "Ma olen näljane," neljandaks sekundis. See skript töötab ka igavesti. Ja nagu me näeme, kus töötab programm, klõpsates roheline lipp, mõlemad skriptid ilmuvad täita samaaegselt. Kala liigub ja mõtleb samal ajal. Kuna vaeste kala tundub nii näljane, lähme lisada mõned cheesy puudritupsud seda süüa. Loodetavasti nad ei laguneda vees. Kui me lisame teises sprite, siis me ka suutma lisada skripte, mis vastab sprite. Ja seega siis tuleb teine ​​rida niidid, mis sa jooksed. Et anda kasutajale meie programmi üle, kui näljane kala saab toitu, oletame, et kui ruum Baar on tabanud, cheesy puudritupsud ilmuvad lavale kala süüa. Enne kui me vajuta tühikut, me tahame hoida cheesy puudritupsud peidetud nii, et kala ei näe neid. Selleks vajame paar skripte cheesy puudritupsud sprite. Esimene skripti, roheline lipp, mis lihtsalt peita toitu. Erinevalt teistest skriptid oleme kirjutanud, see üks ei hoia töötab igavesti. See algus ja lõpp väga kiiresti, eks kui me kliki roheline lipp nuppu. Järgmine skript meil ootab tühikut olla pressitud enne täidesaatva. Saame kõne oodanud kasutaja sisend "ootama" või "kuulates" jaoks sündmus. Ja kood, mis täidab kui sündmus on saanud või kuulnud nimetatakse sündmus käitlemise kood. Meie Tühiku sündmus näitab cheesy puudritupsud kohta ekraan nii, et kala võib süüa. Sel hetkel, kõik on hea. Järgmine asi, mida peame tegema, on aru saada, kuidas saada kala mõistma, et seal süüa. Teeme veel ühe teema, et kala, mis pidevalt kontrolli, kas see on liigutav cheesy puudritupsud. Teeme seda eraldi teemat sest nii saame pidevalt kontrollida toitu. Muidu me tahaks ainult oleks võimalik perioodiliselt kontrollida toidu vahel libisemine, keerates ümber, oodates, või mõelda. OK. Nüüd lähme jooksma meie Scratch programm. Nagu oodatud, toit kohe peidab ja näljane kala ujub edasi ja tagasi nii nagu enne. Kui me vajuta tühikut, cheesy puudritupsud tulla vaadata, ja näljane kala ütleb whoo. Aga oodake, see on imelik. Miks kala on "ma olen näljane" arvas katkestab muud kraami? Seda seetõttu, et me ei looda koordineerimine vahel kolme kala skripte. Iga töötab oma niit, hajameelne, mida teised teevad. Teeme seda parandada enne kui edasi liigume. Kooskõlastamine mida on keeruline ülesanne, sest me ei ole selge kontroll selle üle, millal iga niit jookseb või ei jookse. Sõnumi saatmiseks ühest niit teise, me vajame kasutada muutuja, mis saame, või kirjutada, üks niit ja lugeda teiste. Loome muutuja nimega foodFound et saaksime seatud tõsi kui kala satub cheesy puudritupsud. Noh, muidugi, me tahame veenduda, et me seadke see false esialgu. Siis, kala mõtlemise teema, me vaadata, kui kala on leidnud toit enne väljapanek "Ma olen näljane" jutumull. Nüüd töötab programm jälle näeme, et kala ei saa katkestada mõtteid nälga, kui cheesy puudritupsud on läbi. Viimane probleem on selles, et cheesy puudritupsud ei lähe ära pärast kala, tsiteerin Tsitaat lõppeb, "sööb" neid. Alates kala skriptid, ei ole lihtne viis peita cheesy puudritupsud, seega peame sõnumi saata cheesy puudritupsud sprite peita end. Me võiksime seda teha teise muutuja, mis cheesy puudritupsud sprite on juurdepääs, samuti kala sprite. Kuid seal on puhtam viis seda teha sel juhul, alates saatmise asemel sõnum skripti, mis on kuskil keset täidesaatva, saame saata sõnum skript, mis ootab, et alustada. Me teeme seda, millel kala eetrisse juhul üks me tulen helistada söönud. Seejärel loome skripti cheesy puudritupsud, mis oodata seda sündmust. See on sarnane Space Baar korral, kusjuures see ajal kasutaja pole üks otse vallandada sündmus. Nüüd kõik me peame tegema, on seatud meie foodFound muutuja tagasi vale, ja me saame nüüd anda näljane kala nii palju portsjonit cheesy puudritupsud nagu ta tahab. Nii et ei ole liiga halb, eks? C, kirjalikult multi-keermestatud programmid on keerulisem, kuid põhitõed on samad. Igatahes, ma loodan, et teil on suurepärane aeg ehitada mõned lõbus samaaegne programmide Scratch. Minu nimi on Nate Hardison. See on CS50.