[Powered by Google Translate] Nate HARDISON: Kai jūs turite atidaryti keli programos kompiuteris, atrodo, kad viskas veikia tuo pačiu metu. Pavyzdžiui, jums gali būti darbo su interneto naršykle kaip Firefox ar Internet Explorer, klausytis muzikos iTunes, ir rašyti esė su Word. Tačiau po gaubtu, programos iš tikrųjų paleisti vienu metu. Tai operacinės sistemos darbą, "Windows", "Mac OSX, arba Linux, valdyti kiekvieną iš šių atskirų procesų, kaip programos yra žinoma, ir perjungti juos taip, kad kai jūs patikrinti savo "Facebook" puslapį dirbti savo esė dar kartą, programa Word yra vienas, kad veikia. Kartais, nors, mes norime pačių programų, kad būtų galima daryti daug dalykų, pavyzdžiui, tai, taip pat. Jei jūs panašus į mane, tikriausiai turite krūva skirtingus skirtukus, atidaryti savo interneto naršyklę, elektroninio pašto, vienas kalendorius, ir taip toliau. Mes galime gydyti kiekvieną skirtuką kaip atskira programa arba procesas, , pavyzdžiui, "Google Chrome" daro, bet daug programų naudoja lengvesnės svorio versija proceso vadinamas siūlai. Sriegis yra tiesiog vienas iš apdorojimo blokas, rinkinys instrukcijos arba kodas, kuris gali "paleisti", citata citatos pabaiga, kartu su kitas temas. Tai, ką leidžia jums naršyti "Facebook" klausantis man fone, arba turėti dvi YouTube "vaizdo įrašus, žaisti tuo pačiu metu. Taigi, ši bendra tema, žinomas kaip lygiagrečiai, paprastai nėra sugalvoti taip anksti informatikos kursai nes žemesnio lygio detales reikia diskusiją operacinių sistemų ir panašūs. Tačiau programavimo kalba, mes naudojame ne pradžioje CS50, įbrėžimams, pateikiama keletas madingas įrankiai kad būtų lengviau rašyti programas su daugeliu dalykų vyksta vienu metu. Kai kuriate Scratch programas, jūs nuolat darbo su sriegiais. Kiekviena įbrėžimams scenarijų, kuris yra kodas blokas, kuris prasideda vienas "kai" įspūdį, gali būti suvokiami kaip atskira gija. Pažvelkime paprasta Scratch programos, pamatyti, kaip tai veikia. Čia mes gavo žuvų objektą, arba Sprite du scenarijus , kad tiek pradžia, kai mes paspauskite maža žalia vėliava mygtuką. Pirmojo scenarijaus kontroliuoja žuvies judėjimą. Kai paspaudėte žalia vėliava, žuvis gauna pateikti kairėje ekrano pusėje, vadinamas etapą, žvelgiantį į dešinę. Tada, instrukcijas, kad bus paleisti amžinai, kol mes sustabdyti programą, žuvis kalniukas dešinėje pusėje, apsisuka, grįžta į kairę pusę, ir apsisuka ir vėl. Antras scenarijus kontroliuoja žuvies mąstymo procesą. Pasirodo, kad tai yra alkanas žuvis. Taigi laukia 3 sekundes, žuvis bus manau, "Aš alkanas" jau ketvirtą sekundę. Šis scenarijus taip pat veikia amžinai. Ir kaip matome, paleisti programą, spustelėdami žalia vėliava, abu scenarijus vykdyti tuo pačiu metu. Žuvys juda ir mano, kad tuo pačiu metu. Nes prasta žuvis atrodo taip alkanas, galime pridėti keletą Cheesy pūkinės tai valgyti. Tikimės, kad jie bus suirti į vandenį. Kai mes įtraukiame į antrą Sprite, mes taip pat galės pridėti scenarijus atitinkamų to Sprite. Ir, vadinasi, bus dar vienas rinkinys temas, kad bus paleisti. Suteikti vartotojui per mūsų programos kontrolę, kai alkanas žuvis gauna maisto, tarkim, kad kai erdvė Baras yra hitu, sūrio pūkinės pasirodo ant scenos žuvies valgyti. Kol mes paspauskite tarpo klavišą, mes nori išlaikyti sūrio pūkinės paslėpti taip, kad žuvys negali matyti juos. Norėdami tai padaryti, mes reikia porą scenarijų Cheesy pūkinės Sprite. Pirmasis scenarijus, žalia vėliava, tiesiog paslėpti maistą. Skirtingai nuo kitų scenarijus aprašiusi, tai vienas nebus išsaugoti veikia amžinai. Jis bus pradėti ir baigti labai greitai, teisus, kai mes spustelėkite žalia vėliava mygtuką. Kitas scenarijus, mes turime laukti tarpo spaudimo prieš vykdant. Mes galime vadinti laukia naudotojo įvesties "laukimo" arba "įsiklausyti" įvykio. Ir kodas, kuris vykdo įvykis gaunami ar išklausytam yra vadinamas renginys tvarkymo kodas. Mūsų Tarpo klavišas rankenėlė įvykiai bus parodyti sūrio pūkinės ekranas taip, kad žuvys gali valgyti juos. Šiuo metu, viskas ieško gero. Kitas dalykas, mes turime padaryti, tai išsiaiškinti, kaip gauti žuvis suprasti, kad maisto valgyti. Pridėkime žuvims, kad nuolat kitoje temoje patikrinimai, ar ji liečiančiomis sūrio inhaliacijas. Mes tai darysime atskirą temą, nes taip galime nuolat tikrinti maisto. Priešingu atveju, mes norime tik galės reguliariai tikrinti maisto tarp sklandymo, sukant aplink, laukia arba galvojate. Gerai. Dabar galime paleisti mūsų Scratch programą. Kaip ir tikėtasi, maisto iš karto slepia ir alkanas žuvis plaukia pirmyn ir atgal, kaip ir anksčiau. Kai mes paspauskite tarpo klavišą, nemadingas pūkinės išnerti, ir alkanas žuvis sako Whoo. Bet palaukite, tai keista. Kaip atvykti FISH "Aš alkanas" Mintis nutrūksta kitų dalykų? Taip yra todėl nenustatė koordinavimą tarp trijų žuvų scenarijus. Kiekvienas yra savo siūlų, nekreipti dėmesio į tai, ką kiti daro. Sutvarkykime Prieš mes pereiti. Koordinavimas tarp temas yra sudėtinga užduotis, nes mes neturi aiškiai kontroliuoti, kai kiekvienas siūlas veikia ar neveikia. Norėdami siųsti pranešimą iš viena gija į kitą, mums reikės naudoti kintamąjį, kad mes galime nustatyti, arba parašyti, viena gija ir skaityti kitame. Sukurkime kintamasis vadinamas foodFound, kad mes galime nustatyti, kad tiesa, kai žuvys veikia į sūrio pūkinės. Na, žinoma, mes norime įsitikinti, kad mes nustatykite jį į false pradžių. Tada, žuvies mąstymo siūlų, mes patikrinti, jei žuvys, rasti maistą prieš rodant "Aš alkanas" maniau burbulas. Dabar paleisti programą iš naujo, mes matome, kad žuvys negauna nutraukiamas mintis nuo bado, kai Cheesy pūkinės. Galutinis problema, mes turime, yra, kad nemadingas pūkinės neina karto po žuvies, cituoti Unquote, "valgo" juos. Nuo žuvų scenarijus, nėra paprastas būdas paslėpti sūrio išpučia, todėl mes turime siųsti žinutę sūrio pūkinės Sprite paslėpti save. Mes galime padaryti, tai su kito kintamojo, kad nemadingas pūkinės kaukas gali naudotis, taip pat žuvų Sprite. Tačiau yra švaresnis būdas tai padaryti šiuo atveju, nes, o ne siųsti žinutę scenarijų ŠTAI kažkur viduryje vykdyti, mes galime atsiųsti pranešimas scenarijų, kuris laukia pradėti. Mes tai darome žuvis transliuoti įvykį, mes skambinti valgyti. Tada mes sukurti scenarijų sūrio pūkinės, kad bus laukti šio įvykio. Tarpo atveju tai yra panašus, išskyrus tai, kad šis laikas, vartotojas ne vienas tiesiogiai sukelti įvykį. Dabar visi mes turime padaryti, tai mūsų foodFound kintamasis atgal false, ir dabar mes galime suteikti alkanas žuvis, nes daugelis porcijos sūrio pūkinės, kaip ji nori. Taigi, nėra labai blogai, tiesa? C, raštu multi-threaded programas yra sudėtingesnis, bet pagrindai yra tas pats. Bet kokiu atveju, aš tikiuosi, kad jūs turite daug laiko, pastato tam tikrą įdomus tuo pačiu metu programos nulio. Mano vardas yra Nate Hardison. Tai CS50.