1 00:00:07,360 --> 00:00:09,360 [Powered by Google Translate] నేట్ HARDISON: మీరు పొందారు బహుళ ప్రోగ్రామ్ల ఒక ప్రారంభించాలనే 2 00:00:09,360 --> 00:00:11,250 కంప్యూటర్, ప్రతిదీ యొక్క వంటి తెలుస్తోంది 3 00:00:11,250 --> 00:00:12,880 అదే సమయంలో అమలు. 4 00:00:12,880 --> 00:00:15,350 ఉదాహరణకు, మీ వంటి ఒక వెబ్ బ్రౌజర్ లో పని చేయవచ్చు 5 00:00:15,350 --> 00:00:19,360 Firefox లేదా Internet Explorer, iTunes లో సంగీతం వింటూ, 6 00:00:19,360 --> 00:00:21,490 మరియు పదంతో వ్యాసం రాయడం. 7 00:00:21,490 --> 00:00:24,240 అయితే, దీనిలోనే, కార్యక్రమాలు నిజానికి 8 00:00:24,240 --> 00:00:25,830 ఒక సమయంలో ఒకటి మాత్రమే అమలు. 9 00:00:25,830 --> 00:00:29,750 ఇది Windows, Mac OSX ఆపరేటింగ్ సిస్టమ్ యొక్క పని, లేదా 10 00:00:29,750 --> 00:00:33,070 Linux,, ఈ ప్రత్యేక ప్రక్రియల్లో ప్రతి నిర్వహించడానికి 11 00:00:33,070 --> 00:00:35,900 కార్యక్రమాలు అంటారు, అందువలన వాటి మధ్య మారడానికి చేసే మీరు 12 00:00:35,900 --> 00:00:38,610 మీ వ్యాసం పని మీ Facebook పేజీ తనిఖీ నుంచి 13 00:00:38,610 --> 00:00:41,590 మళ్ళీ, పద అమలు చేసే ఒకటి. 14 00:00:41,590 --> 00:00:44,890 >> కానీ, కొన్నిసార్లు, మేము తాము చేయగలరు కార్యక్రమాలను కావలసిన 15 00:00:44,890 --> 00:00:47,440 చాలా, ఈ వంటి బహుళ పనులు. 16 00:00:47,440 --> 00:00:49,630 మీరు నా లాంటి అయితే, మీరు బహుశా కొంత కలిగి 17 00:00:49,630 --> 00:00:52,730 వివిధ టాబ్లను మీ వెబ్ బ్రౌజర్, ఇమెయిల్ కోసం ఒక, లో తెరవండి 18 00:00:52,730 --> 00:00:55,070 ఒక క్యాలెండర్ తో, కావున న. 19 00:00:55,070 --> 00:00:58,270 మేము, ఒక ప్రత్యేక కార్యక్రమం లేదా ప్రక్రియ ప్రతి టాబ్ చికిత్స కాలేదు 20 00:00:58,270 --> 00:01:01,300 వంటి Google Chrome, కానీ చాలా కార్యక్రమాలు ఒక ఉపయోగించడానికి 21 00:01:01,300 --> 00:01:04,430 ఒక ప్రక్రియ యొక్క లేత బరువు వెర్షన్ ఒక థ్రెడ్ అని. 22 00:01:04,430 --> 00:01:07,190 >> ఒక థ్రెడ్ ప్రాసెసింగ్ యొక్క మరొక విభాగాన్ని సమితి 23 00:01:07,190 --> 00:01:10,100 సూచనలు లేదా "రన్" అని కోడ్, కోట్ unquote, 24 00:01:10,100 --> 00:01:12,560 ఏకకాలంలో ఇతర దారాలతో చేసిన. 25 00:01:12,560 --> 00:01:15,150 ఈ సాధ్యం మీరు Facebook బ్రౌజ్ చేస్తుంది ఏమిటి 26 00:01:15,150 --> 00:01:17,940 నేపథ్యంలో నాకు వినే లేదా రెండు కలిగి ఉండగా 27 00:01:17,940 --> 00:01:20,790 YouTube వీడియోలను ఒకే సమయంలో ప్లే. 28 00:01:20,790 --> 00:01:24,660 కాబట్టి, అనుకూలత పిలిచే ఈ సాధారణ విషయం, సాధారణంగా 29 00:01:24,660 --> 00:01:26,930 కాబట్టి ప్రారంభ కంప్యూటర్ సైన్స్ కోర్సుల్లో ఆలోచన లేదు 30 00:01:26,930 --> 00:01:29,790 తక్కువ స్థాయి వివరాలు చర్చ అవసరం ఎందుకంటే 31 00:01:29,790 --> 00:01:31,930 నిర్వహణ వ్యవస్థలు మరియు ఇష్టపడుతున్నారు. 32 00:01:31,930 --> 00:01:34,170 అయితే, ప్రోగ్రామింగ్ భాష వద్ద ఉపయోగించడానికి 33 00:01:34,170 --> 00:01:38,000 CS50 ప్రారంభానికి, స్క్రాచ్, కొన్ని నిఫ్టీ టూల్స్ అందిస్తుంది 34 00:01:38,000 --> 00:01:40,390 సులభంగా బహుళ విషయాలు ప్రోగ్రాములను వ్రాయటానికి చేయడానికి 35 00:01:40,390 --> 00:01:42,390 ఒకేసారి జరగబోతోంది. 36 00:01:42,390 --> 00:01:45,050 >> మీరు మొదటి కార్యక్రమాలు నిర్మించడానికి, మీరు నిరంతరంగా ఉన్నారు 37 00:01:45,050 --> 00:01:46,760 దారాలతో చేసిన పని. 38 00:01:46,760 --> 00:01:49,770 ప్రతి స్క్రాచ్ స్క్రిప్ట్, ఇది ప్రారంభమవుతుంది ఒక కోడ్ బ్లాక్ 39 00:01:49,770 --> 00:01:52,600 "ఎప్పుడు" పజిల్ ముక్కలు ఒకటి, భావిస్తారు 40 00:01:52,600 --> 00:01:54,380 ప్రత్యేక త్రెడ్ వంటి. 41 00:01:54,380 --> 00:01:58,040 ఎలా ఈ పనులు చూడటానికి ఒక సాధారణ స్క్రాచ్ కార్యక్రమం చూద్దాం. 42 00:01:58,040 --> 00:02:01,730 >> ఇక్కడ, మేము రెండు స్క్రిప్ట్లు ఒక చేప వస్తువు, లేదా స్ప్రైట్ పొందారు 43 00:02:01,730 --> 00:02:05,000 రెండు ప్రారంభ మేము లిటిల్ గ్రీన్ జెండా బటన్ క్లిక్ చేసినప్పుడు ఆ. 44 00:02:05,000 --> 00:02:07,290 మొదటి స్క్రిప్ట్ చేప యొక్క చలన నియంత్రిస్తుంది. 45 00:02:07,290 --> 00:02:09,850 ఆకుపచ్చ జెండా క్లిక్ చేసినప్పుడు, చేపలు ఉంచుతారు అవుతుంది 46 00:02:09,850 --> 00:02:12,450 స్క్రీన్ ఎడమ వైపు,, దశ అని 47 00:02:12,450 --> 00:02:14,090 కుడివైపు ఎదుర్కొంటున్న. 48 00:02:14,090 --> 00:02:17,070 అప్పుడు, ఎప్పటికీ అమలు మేము సూచనలను సెట్ లో, వరకు మేము 49 00:02:17,070 --> 00:02:20,270 కార్యక్రమం ఆపడానికి, చేపలు, కుడివైపుకి గ్లిడ్స్ 50 00:02:20,270 --> 00:02:22,900 , తిరుగుతుంది ఎడమవైపు తిరిగి వెళ్తాడు, 51 00:02:22,900 --> 00:02:24,470 మళ్ళీ తిరుగుతుంది. 52 00:02:24,470 --> 00:02:27,410 రెండవ స్క్రిప్ట్ చేప యొక్క ఆలోచన విధానాన్ని నియంత్రించే. 53 00:02:27,410 --> 00:02:29,290 ఇది ఒక ఆకలితో చేప అని అవుతుంది. 54 00:02:29,290 --> 00:02:32,080 కాబట్టి 3 సెకన్లు వేచి ఉన్న తర్వాత, చేపలు, భావించే 55 00:02:32,080 --> 00:02:34,420 నాలుగో రెండో "నేను ఆకలితో ఉన్నాను". 56 00:02:34,420 --> 00:02:36,440 ఈ స్క్రిప్ట్ కూడా శాశ్వతంగా నడుస్తుంది. 57 00:02:36,440 --> 00:02:38,940 మరియు మేము క్లిక్ చేయడం ద్వారా ప్రోగ్రామ్ను అమలు నుండి, చూడుము 58 00:02:38,940 --> 00:02:41,730 ఆకుపచ్చ జెండా రెండు స్క్రిప్ట్లు అమలు కనిపిస్తాయి 59 00:02:41,730 --> 00:02:43,100 ఒకేసారి. 60 00:02:43,100 --> 00:02:46,460 చేప అదే సమయంలో కదులుతూ మరియు ఆలోచిస్తుంది. 61 00:02:46,460 --> 00:02:49,030 >> పేద చేప కాబట్టి ఆకలితో ఉంది కాబట్టి, యొక్క కొన్ని జోడించడానికి అనుమతిస్తుంది 62 00:02:49,030 --> 00:02:50,670 అది తినడానికి కోసం చీజీ పఫ్స్. 63 00:02:50,670 --> 00:02:53,060 ఆశాజనక వారు నీటిలో విడిపోవడానికి లేదు. 64 00:02:53,060 --> 00:02:55,560 మేము రెండవ స్ప్రైట్ లో జోడిస్తే, మేము కూడా చేయగలరు 65 00:02:55,560 --> 00:02:58,020 ఆ దేవదూత అనుగుణంగా స్క్రిప్ట్ లో జోడించండి. 66 00:02:58,020 --> 00:02:59,580 మరియు, అందువలన, మరో జత అక్కడ ఉంటాం 67 00:02:59,580 --> 00:03:00,830 రన్ చేస్తాము థ్రెడ్లు. 68 00:03:03,590 --> 00:03:06,270 మా ప్రోగ్రామ్ కంట్రోల్ యొక్క వినియోగదారుని ఇవ్వాలని ఉన్నప్పుడు 69 00:03:06,270 --> 00:03:09,340 ఆకలితో చేప ఆహారం వస్తుంది, అనుకుందాము చేసినప్పుడు స్పేస్ 70 00:03:09,340 --> 00:03:11,840 బార్ కొట్టినప్పుడు, చీజీ పఫ్స్ కోసం వేదికపై కనిపిస్తాయి 71 00:03:11,840 --> 00:03:13,300 చేప తినడానికి. 72 00:03:13,300 --> 00:03:15,760 మేము స్పేస్ బార్ నొక్కండి ముందు, మేము చీజీ ఉంచాలని మీరు 73 00:03:15,760 --> 00:03:19,020 చేప చూడండి తద్వారా పఫ్స్ దాచిపెట్టబడింది. 74 00:03:19,020 --> 00:03:21,140 ఇది చేయుటకు, మనం స్క్రిప్ట్స్ యొక్క జంట చేయాలి 75 00:03:21,140 --> 00:03:22,750 చీజీ పఫ్స్ స్ప్రైట్. 76 00:03:22,750 --> 00:03:26,980 మొదటి స్క్రిప్ట్, ఆకుపచ్చ జెండా, కేవలం ఆహారం దాచిపెడుతుంది. 77 00:03:26,980 --> 00:03:29,530 మేము వ్రాయలేదు ఇతర స్క్రిప్ట్స్ కాకుండా, ఈ ఉంచరు 78 00:03:29,530 --> 00:03:30,560 ఎప్పటికీ అమలు. 79 00:03:30,560 --> 00:03:33,250 ఇది మేము క్లిక్ కుడి ఉన్నప్పుడు, ప్రారంభం మరియు చాలా త్వరగా పూర్తి 80 00:03:33,250 --> 00:03:35,000 ఆకుపచ్చ జెండా నొక్కండి. 81 00:03:35,000 --> 00:03:37,180 >> స్పేస్ బార్ కొరకు మనం తదుపరి స్క్రిప్ట్ వేచి ఉండాలో 82 00:03:37,180 --> 00:03:39,590 అమలు ముందు ఒత్తిడి. 83 00:03:39,590 --> 00:03:42,770 మేము వినియోగదారు ఇన్పుట్ కోసం "వేచి" లేదా "listening" వేచి కాల్ చేయవచ్చు 84 00:03:42,770 --> 00:03:43,860 ఒక ఈవెంట్ కోసం. 85 00:03:43,860 --> 00:03:46,750 మరియు ఒక సంఘటన లేదా వచ్చినప్పుడు అమలు చేసే కోడ్ 86 00:03:46,750 --> 00:03:50,280 విన్న సంఘటన నిర్వహణ కోడ్ అంటారు. 87 00:03:50,280 --> 00:03:53,550 అవర్ స్పేస్ బార్ ఈవెంట్ నిర్వహణ మీద చీజీ పఫ్స్ చూపుతుంది 88 00:03:53,550 --> 00:03:56,330 తెరపై ఒక చేప వాటిని తినడానికి ఆ. 89 00:03:56,330 --> 00:03:58,880 ఈ సమయంలో, ప్రతిదీ మంచి ఆరాటపడుతుంది. 90 00:03:58,880 --> 00:04:00,990 >> మేము చెయ్యాల్సిన తదుపరి విషయం ఎలా దొరుకుతుందని ఉంది 91 00:04:00,990 --> 00:04:03,570 చేప తినడానికి ఆహార అక్కడ తెలుసుకుంటారు. 92 00:04:03,570 --> 00:04:06,030 యొక్క ఆ నిరంతరం చేప మరొక థ్రెడ్ జోడించడానికి అనుమతిస్తుంది 93 00:04:06,030 --> 00:04:08,790 అది చీజీ పఫ్స్ తాకడం అయినా లేదా తనిఖీ చేస్తుంది. 94 00:04:08,790 --> 00:04:11,510 మేము ఆ విధంగా నుండి ఒక ప్రత్యేక త్రెడ్ లో దీన్ని 95 00:04:11,510 --> 00:04:13,710 నిరంతరం ఆహార తనిఖీ. 96 00:04:13,710 --> 00:04:16,829 లేకపోతే, మేము మాత్రమే క్రమానుగతంగా ఆహార తనిఖీ చేయగలుగుతారు భావిస్తున్న 97 00:04:16,829 --> 00:04:21,180 క్రిందికి జారుట మధ్య లో, చుట్టూ తిరగడం వేచి, లేదా ఆలోచన. 98 00:04:21,180 --> 00:04:22,000 >> OK. 99 00:04:22,000 --> 00:04:23,785 ఇప్పుడు మా స్క్రాచ్ అమలు అనుమతిస్తాయి. 100 00:04:23,785 --> 00:04:26,921 ఊహించిన విధంగా, ఆహార వెంటనే దాక్కున్నాడు మరియు 101 00:04:26,921 --> 00:04:28,920 ఆకలితో చేప తిరిగి ఈదుతాడు మరియు ముందుకు ముందు కేవలం ఇష్టం. 102 00:04:32,050 --> 00:04:35,060 మేము స్పేస్ బార్ కొట్టాడు, చీజీ పఫ్స్, వీక్షణ వస్తాయి 103 00:04:35,060 --> 00:04:37,470 మరియు ఆకలితో చేప whoo చెప్పారు. 104 00:04:37,470 --> 00:04:39,340 కానీ అసహజ అలా వేచి. 105 00:04:39,340 --> 00:04:42,150 చేప యొక్క ఆలోచన ఆటంకాలు "నేను ఆకలితో ఉన్నాను" ఎలా వస్తాయి 106 00:04:42,150 --> 00:04:43,580 ఇతర విషయాలను? 107 00:04:43,580 --> 00:04:45,780 మేము ఏ సమన్వయ ఏర్పాటు లేదు ఎందుకంటే 108 00:04:45,780 --> 00:04:47,590 మూడు చేపలు స్క్రిప్ట్ మధ్య. 109 00:04:47,590 --> 00:04:50,610 ప్రతి ఏమి పట్టించుకోలేదు, దాని స్వంత థ్రెడ్ లో రన్ 110 00:04:50,610 --> 00:04:52,120 ఇతరులు చేస్తున్న. 111 00:04:52,120 --> 00:04:54,980 మేము ముందుకు ముందు యొక్క ఈ పరిష్కరించడానికి లెట్. 112 00:04:54,980 --> 00:04:57,700 >> థ్రెడ్ మధ్య సమన్వయం మేము నుండి గమ్మత్తైన పని 113 00:04:57,700 --> 00:05:00,940 స్పష్టమైన ప్రతి థ్రెడ్ నడుస్తుంది ఉన్నప్పుడు నియంత్రణ లేదా లేదు 114 00:05:00,940 --> 00:05:02,190 నడవదు. 115 00:05:02,190 --> 00:05:04,710 ఒక త్రెడ్ నుంచి మరొక సందేశాన్ని పంపడానికి, మేము చేయాలి 116 00:05:04,710 --> 00:05:08,300 ఒక త్రెడ్ లో, మేము సెట్, లేదా రాయడం ఒక వేరియబుల్ ఉపయోగించడానికి 117 00:05:08,300 --> 00:05:10,170 మరియు ఇతర చదివాడు. 118 00:05:10,170 --> 00:05:12,920 లెట్ యొక్క మేము సెట్ ఒక వేరియబుల్ అని foodFound సృష్టించడానికి 119 00:05:12,920 --> 00:05:15,530 నిజమైన చేప చీజీ పఫ్స్ లోకి నడుస్తుంది ఉన్నప్పుడు. 120 00:05:15,530 --> 00:05:17,540 Well, కోర్సు యొక్క, మేము దానిని సెట్ ఆ నిర్ధారించుకోవాలి 121 00:05:17,540 --> 00:05:19,240 ప్రారంభంలో తప్పుడు. 122 00:05:19,240 --> 00:05:22,540 అప్పుడు, చేప యొక్క ఆలోచన థ్రెడ్ లో, మేము చూడటానికి తనిఖీ చేస్తాము ఉంటే 123 00:05:22,540 --> 00:05:25,400 చేప "నేను ఆకలితో ఉన్నాను" ప్రదర్శించే ముందుగా ఆహార కనుగొంది 124 00:05:25,400 --> 00:05:26,770 బబుల్ ఆలోచన. 125 00:05:26,770 --> 00:05:29,670 >> ఇప్పుడు, ప్రోగ్రామ్ను అమలు మళ్ళీ, మేము చూసే చేప 126 00:05:29,670 --> 00:05:31,580 ఆకలి ఆలోచనలతో అంతరాయం కలుగుతుంది లేకపోతే 127 00:05:31,580 --> 00:05:33,820 చీజీ పఫ్స్ ముగిసింది. 128 00:05:33,820 --> 00:05:36,820 మనం చివరి సమస్య చీజీ పఫ్స్ జరగనప్పుడు ఆ 129 00:05:36,820 --> 00:05:39,800 దూరంగా చేప తర్వాత, unquote కోట్, వాటిని "తింటున్నాడు". 130 00:05:39,800 --> 00:05:42,305 చేప గ్రంథాలయ, చీజీ దాచడానికి తేలికైన మార్గము లేదు 131 00:05:42,305 --> 00:05:44,710 పఫ్స్, కాబట్టి మేము చీజీ పఫ్స్ ఒక సందేశాన్ని పంపాలి 132 00:05:44,710 --> 00:05:46,780 స్వయంగా దాచడానికి స్ప్రైట్. 133 00:05:46,780 --> 00:05:49,550 మేము మరొక వేరియబుల్ ఈ చేయగల చీజీ పఫ్స్ 134 00:05:49,550 --> 00:05:52,680 దేవదూత యాక్సెస్, అలాగే చేప స్ప్రైట్ ఉంది. 135 00:05:52,680 --> 00:05:55,720 >> అయితే, ఈ విషయంలో ఇది ఒక క్లీనర్ విధంగా ఉన్నది 136 00:05:55,720 --> 00:05:57,840 బదులుగా ఉన్న ఒక లిపి ఒక సందేశాన్ని పంపడానికి యొక్క నుండి 137 00:05:57,840 --> 00:06:00,570 ఎక్కడో అమలు మధ్యలో, మేము పంపవచ్చు 138 00:06:00,570 --> 00:06:03,710 ప్రారంభించడానికి వేచి ఒక లిపి సందేశాన్ని. 139 00:06:03,710 --> 00:06:07,360 మేము చేప ద్వారా దీన్ని మేము చేస్తాము కార్యక్రమం, ఒక ప్రసారం 140 00:06:07,360 --> 00:06:08,800 తింటారు కాల్. 141 00:06:08,800 --> 00:06:11,510 అప్పుడు, మేము రెడీ ఆ చీజీ పఫ్స్ కోసం స్క్రిప్ట్ సృష్టిస్తారు 142 00:06:11,510 --> 00:06:13,030 ఈ కార్యక్రమం కోసం వేచి. 143 00:06:13,030 --> 00:06:15,560 ఈ ఈ తప్ప, స్పేస్ బార్ ఈవెంట్ పోలి ఉంటుంది 144 00:06:15,560 --> 00:06:19,250 సమయం, యూజర్ నేరుగా ఈవెంట్ చెందేందుకు ఒక కాదు. 145 00:06:19,250 --> 00:06:22,800 ఇప్పుడు మేము అన్ని మా foodFound వేరియబుల్ తిరిగి సెట్ 146 00:06:22,800 --> 00:06:25,750 తప్పుడు, మరియు మేము ఇప్పుడు చాలా ఆకలితో చేప ఇస్తుంది 147 00:06:25,750 --> 00:06:28,470 అది కావాలి వంటి చీజీ పఫ్స్ యొక్క సేర్విన్గ్స్. 148 00:06:28,470 --> 00:06:30,040 >> కాబట్టి చెడు లేదు, కుడి? 149 00:06:30,040 --> 00:06:33,400 సి, మల్టీ థ్రెడ్ కార్యక్రమాలు రాయడం, మరింత సంక్లిష్టమైనది 150 00:06:33,400 --> 00:06:35,700 కానీ బేసిక్స్ ఒకటే. 151 00:06:35,700 --> 00:06:38,690 ఏమైతేనేం, నేను మీరు కొన్ని వినోద నిర్మించడం చాలా సంతోషంగా ఉంది ఆశిస్తున్నాము 152 00:06:38,690 --> 00:06:41,030 స్క్రాచ్ లో ఉభయ కార్యక్రమాలు. 153 00:06:41,030 --> 00:06:42,570 నా పేరు నేట్ Hardison ఉంది. 154 00:06:42,570 --> 00:06:45,260 ఈ CS50 ఉంది.