1
00:00:02,410 --> 00:00:04,520
Ciao, questa è la stanza di Plutone.

2
00:00:04,560 --> 00:00:06,080
E bentornato.

3
00:00:06,080 --> 00:00:10,300
Direi che non hai finito, ma una parte della

4
00:00:10,300 --> 00:00:16,990
concordanza ogni capitolo e nella restante parte del capitolo esplora vividamente la cooperazione sulla gestione.

5
00:00:17,000 --> 00:00:19,710
Queste sono un paio di preoccupazioni che affrontiamo finora.

6
00:00:20,690 --> 00:00:27,680
Per affrontare le condizioni di gara, quello di cui avevamo bisogno era una città di Thomas che sia una minaccia che deve eseguire

7
00:00:27,770 --> 00:00:29,010
atomicamente alcune operazioni.

8
00:00:29,180 --> 00:00:36,500
L'abbiamo visto, ma le variabili di sincronizzazione e Accomack hanno contribuito a questo e per quanto riguarda la visibilità della memoria

9
00:00:36,710 --> 00:00:39,510
in generale la sincronizzazione non sono variabili atomiche.

10
00:00:39,590 --> 00:00:47,080
Potremmo usarne uno per dire dov'era e ha avuto un paio di nuovi requisiti che devono ancora essere affrontati.

11
00:00:47,160 --> 00:00:50,780
Il primo è la cooperazione diretta con la sincronizzazione.

12
00:00:50,790 --> 00:00:56,730
Abbiamo visto una forma di cooperazione che è stata una volta all'interno di una regione sincronizzata.

13
00:00:56,790 --> 00:01:03,150
Quindi altre minacce devono attendere e non possono immettere né la stessa né un'altra regione sincronizzata

14
00:01:03,150 --> 00:01:04,970
protetta dalla stessa logica.

15
00:01:05,430 --> 00:01:10,270
Quindi la competizione dice che non interferisce l'uno con l'altro.

16
00:01:10,350 --> 00:01:15,210
Tuttavia in alcuni scenari abbiamo bisogno di più di questa semplice cooperazione.

17
00:01:15,280 --> 00:01:22,000
Ad esempio, se una minaccia si trova in una regione sincronizzata, potrebbe non essere in grado di eseguire la

18
00:01:22,000 --> 00:01:26,010
sua attività a meno che altre minacce costituiscano altre attività pertinenti.

19
00:01:26,080 --> 00:01:33,430
Venerdì il Fuster di Hofstra ha portato l'altro critico a casa prima che il Fastrak possa continuare.

20
00:01:34,400 --> 00:01:41,000
Non che lui o Fuster debbano sapere se l'altra minaccia ha eseguito o meno la pertinente.

21
00:01:41,260 --> 00:01:41,960
Destra.

22
00:01:42,050 --> 00:01:49,940
E questa informazione viene catturata attraverso uno stato condiviso dello stato condiviso che soddisfa certi criteri che non sono altro

23
00:01:49,940 --> 00:01:51,570
che una condizione.

24
00:01:51,800 --> 00:01:56,050
Solo allora la prima minaccia continuerà le sue azioni.

25
00:01:56,100 --> 00:01:57,970
Quindi questa è anche una condizione a bordo.

26
00:01:58,000 --> 00:01:59,440
Ma per favore torna qui.

27
00:02:00,220 --> 00:02:02,670
A breve vedremo un esempio di questo.

28
00:02:02,710 --> 00:02:09,220
Quindi quello che vedremo in seguito è una reale interazione tra i ricchi e per questo guardiamo a

29
00:02:09,220 --> 00:02:10,330
tre approcci.

30
00:02:10,330 --> 00:02:16,990
Il primo è qualcosa a cui mi riferirebbe come in un approccio che si baserebbe su ciò che già possiede.

31
00:02:16,990 --> 00:02:24,290
Il secondo approccio è aspettare non se mi avvicino a Vitt usando questo metodo. Si chiama esca o ti notifica di interagire.

32
00:02:24,400 --> 00:02:30,770
E l'ultimo approccio implicherebbe alcune utilità di concorrenza che sono state introdotte in Jollof

33
00:02:30,790 --> 00:02:31,300
attualmente.

34
00:02:31,330 --> 00:02:39,170
L'approccio migliore per la cooperazione e il secondo requisito riguarda la gestione, che è importante quando si tratta di sistemi

35
00:02:39,170 --> 00:02:44,870
di competenze molto numerosi, in cui si verificano numerosi e numerosi thread in concomitanza con

36
00:02:45,550 --> 00:02:46,640
tali scenari.

37
00:02:46,640 --> 00:02:53,630
Abbiamo bisogno di avere una buona traccia di creazione di una struttura di gestione che stia creando trincee, così come

38
00:02:53,630 --> 00:02:58,200
abbiamo visto finora non sarà di grande aiuto dal punto di vista pratico.

39
00:02:58,490 --> 00:03:00,720
Non solo buono per le piccole applicazioni.

40
00:03:01,620 --> 00:03:07,230
La concorrenza o le entità fornite con Java 5 includono qualcosa chiamato quadro esecutivo che potrebbe

41
00:03:07,230 --> 00:03:08,550
aiutare in questo.

42
00:03:08,910 --> 00:03:14,460
Più avanti considereremo questo come un buon framework e noterete quanto sia facile usare quel framework per

43
00:03:16,500 --> 00:03:18,930
non comprendere la cooperazione e la gestione.

44
00:03:18,940 --> 00:03:25,540
Utilizzeranno il processo di indicizzazione delle pagine come esempio per cui l'indicizzazione delle pagine è un processo che viene

45
00:03:25,540 --> 00:03:30,970
eseguito dai motori di ricerca come l'indicizzazione di Google è un processo molto complesso.

46
00:03:31,000 --> 00:03:33,600
Il primo passo sarebbe un buon download delle pagine web.

47
00:03:33,730 --> 00:03:35,800
E questo è fatto da un più ampio.

48
00:03:35,950 --> 00:03:42,100
Abbiamo tutti bisogno di discutere un po 'di ciò che ti viene dato o di una pagina

49
00:03:42,150 --> 00:03:50,300
di lavoro di webcrawler per prima cosa scaricare quella pagina web e semplicemente scaricare tutte le pagine che sono per quella particolare pagina.

50
00:03:50,560 --> 00:03:54,090
E questo processo continua anche con le pagine web scaricate.

51
00:03:54,400 --> 00:03:55,820
Quelle sono le pagine scaricate.

52
00:03:55,900 --> 00:04:02,440
Avremo anche così tante cose e abbiamo bisogno di scaricare tutte quelle pagine Web una volta scaricate le

53
00:04:02,550 --> 00:04:06,250
pagine che devono essere indicizzate per i motori di ricerca.

54
00:04:06,250 --> 00:04:12,190
C'è qualcosa chiamato indice invertito che è una struttura dati che ci permette di cercare

55
00:04:12,190 --> 00:04:14,850
quei documenti in modo molto efficiente.

56
00:04:15,340 --> 00:04:22,390
Quindi, se è necessario per la ricerca degli aspetti, quale indice è ciò che si sta costruendo nel campo del recupero delle

57
00:04:22,410 --> 00:04:26,560
informazioni è interamente relativo alla scansione di REPP nel processo di indicizzazione.

58
00:04:26,560 --> 00:04:28,250
È un campo molto interessante.

59
00:04:29,130 --> 00:04:35,250
Quindi le dimostrazioni che faremo simuleranno questo processo e ogni giorno incorpora una nuova funzione

60
00:04:35,250 --> 00:04:42,250
su cui ci basiamo e tipicamente improvvisiamo sulla funzione precedente, che non era così sarà davvero buona e

61
00:04:42,250 --> 00:04:45,190
spero che vi piaccia l'approccio adottato qui.

62
00:04:46,980 --> 00:04:52,560
E questo è ciò che avremmo nella nostra democrazia, forse avremmo un indicizzatore di

63
00:04:52,710 --> 00:05:01,410
download di tre classi e rebeling un'istanza di Blink rappresenta un utente su un'altra pagina e questo oggetto è condiviso tra

64
00:05:01,800 --> 00:05:06,800
downloader, un indice e oggetti che non sono altro che trappole.

65
00:05:06,860 --> 00:05:14,020
Quindi, per ogni battito di ciglia, stiamo fondamentalmente creando il downloader senza stiramento e condividiamo lo stesso oggetto

66
00:05:14,050 --> 00:05:15,260
del riflesso.

67
00:05:15,340 --> 00:05:22,150
Non sono a conoscenza del fatto che una minaccia sia responsabile del download della pagina a cui fa riferimento

68
00:05:22,250 --> 00:05:26,680
l'uplink. Una minaccia dell'indice è responsabile dell'indicizzazione di ciascuna di esse.

69
00:05:26,850 --> 00:05:33,890
Quindi non ci sarà alcuna operazione in quanto l'indicizzatore dovrebbe essere in grado di indicizzare solo dopo che il downloader

70
00:05:33,950 --> 00:05:40,860
può scaricare una pagina anche se il thread dell'indicizzatore è pronto per l'indicizzazione sul downloader non ha ancora scaricato una

71
00:05:40,890 --> 00:05:47,550
pagina, quindi l'indicizzatore deve in qualche modo aspettare fino a quando il caricatore di alba non completa il download

72
00:05:47,550 --> 00:05:48,910
della pagina web.

73
00:05:49,070 --> 00:05:56,750
Quindi la condizione qui per l'indicizzazione di procedere sarebbe la disponibilità o scaricato sulla pagina che domani Gram's

74
00:05:56,760 --> 00:06:00,270
ci coinvolge anche più di una sera.

75
00:06:00,790 --> 00:06:06,770
E per ciascuno di uplink creeremmo due tracce quindi in qualsiasi dato momento dato il numero di

76
00:06:06,780 --> 00:06:13,900
minacce che la prenotazione può ottenere in nessuna parte andiamo avanti e facciamo la nostra prima demo e vedremo il

77
00:06:13,900 --> 00:06:16,090
nuovo approccio che ho menzionato

78
00:06:18,670 --> 00:06:25,810
in precedenza, la società Oka per questo o Ho creato un nuovo pacchetto chiamato indicizzatore punto puntino semantics punto quadrato puntatore.

79
00:06:25,960 --> 00:06:31,890
Quindi è creato in virgola semantica quadrata o competenza e all'interno di questo un indicizzatore del pacchetto.

80
00:06:31,930 --> 00:06:34,790
Ho creato una nuova classe chiamata nyou index.

81
00:06:35,000 --> 00:06:35,470
OK.

82
00:06:35,770 --> 00:06:37,400
Quindi la fine di ciò che è stato fatto.

83
00:06:37,420 --> 00:06:41,290
Quindi vedremo questo tribunale e non scriveremo alcun nuovo codice in

84
00:06:41,500 --> 00:06:46,120
questa classe perché qui c'è molto codice e in seguito Il più scriveremo del codice.

85
00:06:46,300 --> 00:06:48,220
Quindi questo indicizzatore di glossario.

86
00:06:48,250 --> 00:06:52,790
Ha tre uffici distrettuali uno di loro è un collegamento.

87
00:06:52,850 --> 00:06:58,370
Questo è un bubbling e le altre due classi sono indicizzatore e downloader.

88
00:06:58,400 --> 00:07:01,640
Ne abbiamo già discusso nella conferenza così.

89
00:07:01,790 --> 00:07:05,220
E la lezione di chiacchiere abbiamo queste carte d'identità.

90
00:07:05,410 --> 00:07:11,090
Sei malato e ospite e anche il DMA basato su una pagina.

91
00:07:11,150 --> 00:07:17,220
In modo che sarà memorizzato in questa pagina di Steimle di carte a pagamento e stiamo usando variabile volatile qui.

92
00:07:17,240 --> 00:07:23,000
OK, quindi è un modificatore di blocco e abbiamo bisogno di questo perché abbiamo due diversi thread che stanno cercando

93
00:07:23,000 --> 00:07:27,440
di interagire tra loro e hanno bisogno di vedere il valore di questa variabile.

94
00:07:27,440 --> 00:07:33,390
Ok, questa è una variabile condivisa e, a parte questo, abbiamo solo alcuni getter e setter qui.

95
00:07:33,790 --> 00:07:40,760
E questa è la loro classe di downloader e implementa eseguibile Quindi abbiamo detto che il downloader

96
00:07:40,760 --> 00:07:44,080
e l'indicizzatore condividono lo stesso oggetto Webling.

97
00:07:44,150 --> 00:07:49,030
Quindi abbiamo il costruttore qui dove il balbettio viene inizializzato.

98
00:07:49,290 --> 00:07:52,330
Ed ecco un metodo di esecuzione perché stiamo implementando eseguibile.

99
00:07:52,880 --> 00:07:55,320
E allo stesso modo abbiamo l'indicizzatore.

100
00:07:55,550 --> 00:08:01,090
Quindi, proprio come in questo caso, anche qui è stato inizializzato il costruttore e l'oggetto Blinkx.

101
00:08:01,220 --> 00:08:04,200
E lo abbiamo anche sul mio qui.

102
00:08:04,280 --> 00:08:11,370
Quindi quelle sono le tre classi e la classe indexer che ha tre metodi.

103
00:08:11,430 --> 00:08:12,970
Creo uno spazio vuoto

104
00:08:13,110 --> 00:08:14,660
E anche il metodo principale.

105
00:08:14,660 --> 00:08:21,380
Quindi nel metodo principale stiamo istanziando il mixer Nirman e qui stiamo creando delle ramblings.

106
00:08:21,380 --> 00:08:28,220
OK, in modo da creare bolle spumeggianti, Metford è il principale responsabile della creazione del passaggio NBA.

107
00:08:28,220 --> 00:08:29,800
Tutti i WC necessari.

108
00:08:29,930 --> 00:08:37,840
Quindi stiamo passando quattro link diversi qui link a pagine e stiamo passando tutte le informazioni necessarie e tutte

109
00:08:38,600 --> 00:08:44,560
queste cose per i messaggi verranno salvate qui verranno memorizzate in una struttura dati.

110
00:08:44,570 --> 00:08:47,310
E per questo abbiamo creato questo aumentato.

111
00:08:47,330 --> 00:08:53,490
Quindi è qui che ha una struttura che stiamo usando è un addendum qui.

112
00:08:53,690 --> 00:08:59,920
Quindi in cima stiamo creando un mazzo automatico e memorizzeremo tutti gli oggetti vaganti.

113
00:09:00,070 --> 00:09:08,300
OK, così via, stiamo nominando Q: sono tutti aggiunti in coda usando il metodo OK.

114
00:09:08,390 --> 00:09:11,430
E finalmente stiamo invocando la questione, andiamo qui.

115
00:09:11,750 --> 00:09:15,190
Ed ecco il metodo andare su quel terzo andare.

116
00:09:15,210 --> 00:09:22,050
Praticamente itera su Q che ha le quattro lunghezze e in ogni iterazione è.

117
00:09:22,260 --> 00:09:30,030
Sta estraendo lo spazio in bianco OK da catturato dal fumo che importava sul cubo e sta creando due

118
00:09:30,030 --> 00:09:30,880
tracce.

119
00:09:31,030 --> 00:09:31,590
OK.

120
00:09:31,600 --> 00:09:35,630
Non c'è un dottore in linea tranne la lettura e sta passando.

121
00:09:35,760 --> 00:09:41,140
Non stai passando da un battito di ciglia e si sta anche creando un'istanza, ma non ordinare un indicizzatore.

122
00:09:41,150 --> 00:09:48,240
OK, quindi quelli sono il passato e quei punti sono inizializzati bit l'oggetto che bolle e quindi stiamo iniziando

123
00:09:48,420 --> 00:09:49,500
il prossimo.

124
00:09:49,500 --> 00:09:52,530
Ora andiamo avanti e guardiamo queste tracce.

125
00:09:55,280 --> 00:09:57,910
OK, ecco il metodo di esecuzione.

126
00:09:58,190 --> 00:10:01,650
Non conosco la classe qui.

127
00:10:01,820 --> 00:10:04,320
Fondamentalmente stiamo scaricando la pagina web.

128
00:10:04,340 --> 00:10:09,540
Quindi siamo a Woking per farti uscire da un metodo e stiamo scaricando per il download.

129
00:10:09,620 --> 00:10:15,380
Quindi abbiamo questa meccanica di storia di auto di utilità in fondo alla strada e che in realtà non conoscono la

130
00:10:15,380 --> 00:10:16,080
pagina web.

131
00:10:16,080 --> 00:10:16,390
OK.

132
00:10:16,430 --> 00:10:22,060
Quindi questo sarà anche fornito e la sezione delle risorse e puoi dare un'occhiata a questo.

133
00:10:22,300 --> 00:10:30,310
E così otterrà l'Hachem al-Bashir e un bicchiere gorgogliante ha il seggiolone m. p. h. variabile anche sul

134
00:10:30,350 --> 00:10:34,410
record del bambino invocando il secondo metodo per quello.

135
00:10:34,640 --> 00:10:38,260
Quindi se lo invochiamo avremo il secondo metodo.

136
00:10:38,300 --> 00:10:45,230
Questo è quello che stiamo facendo qui e non solo che tutte le classi annidate dell'albero sono classi membro statiche.

137
00:10:45,230 --> 00:10:51,320
Quindi non stiamo usando classi membro non statiche perché le classi membro non statiche faranno riferimento alla classe che include

138
00:10:51,320 --> 00:10:56,930
che è un indicizzatore e non abbiamo bisogno di questo perché non abbiamo bisogno di accedere a nessuno

139
00:10:56,930 --> 00:10:59,860
dei suoi membri membri di istanze di membri.

140
00:10:59,930 --> 00:11:06,460
Quindi vedremo che negli studi olandesi sul perché stiamo usando classi nidificate statiche.

141
00:11:06,740 --> 00:11:07,330
Quindi quella ricerca.

142
00:11:07,330 --> 00:11:13,680
Quindi stabiliremo la base qui e nell'indicizzatore abbiamo quello senza limiti.

143
00:11:14,210 --> 00:11:17,060
Ora entrambe le tracce devono comunicare.

144
00:11:17,060 --> 00:11:23,040
Giusto perché il thread dell'indicizzatore non deve indicizzare il loro documento prima che il download avvenga.

145
00:11:23,060 --> 00:11:29,390
Ha bisogno della pagina Web scaricata per nix del documento e per l'indice abbiamo usato questo metodo

146
00:11:29,480 --> 00:11:30,420
chiamato index.

147
00:11:30,430 --> 00:11:37,250
È definito all'interno della classe indexer e tutto ciò che fa è che il testo dice semplicemente che quel particolare

148
00:11:37,250 --> 00:11:38,660
testo è stato indicizzato.

149
00:11:38,660 --> 00:11:40,120
Ok, quindi sta solo stampando l'ID.

150
00:11:40,160 --> 00:11:46,460
Quindi non stiamo andando, non stiamo facendo nulla di speciale qui per quanto riguarda l'indicizzazione

151
00:11:46,460 --> 00:11:47,000
qui.

152
00:11:47,000 --> 00:11:54,140
Quindi questo thread di discussione è fondamentalmente funzionante, così come il download della vecchia pagina di Hatcham, ma se la pagina non

153
00:11:54,140 --> 00:11:57,270
è uguale, non solo avrà bisogno di essere indicizzata.

154
00:11:57,440 --> 00:12:03,800
OK, ma se è uguale a none allora non dovremmo indicizzare questo particolare thread il thread

155
00:12:03,830 --> 00:12:10,760
dell'indicizzatore deve aspettare che la minaccia del downloader completi il download della pagina Web e per questo motivo

156
00:12:10,760 --> 00:12:12,860
abbiamo questo ciclo finito qui.

157
00:12:13,160 --> 00:12:19,760
Quindi, se e se la pagina è uguale a null, andiamo nella pendenza e vediamo solo che la pagina

158
00:12:19,810 --> 00:12:20,990
NON viene scaricata.

159
00:12:21,530 --> 00:12:27,830
Quindi tra le due tracce e estratto è iniziato 400 sta correndo attraverso lo stretto è in esecuzione.

160
00:12:28,010 --> 00:12:33,740
Quindi è un avvio in esecuzione prima che il downloader non conosca il thread e quindi stiamo entrando in questo

161
00:12:33,740 --> 00:12:36,080
ciclo su pagine hastier uguali a un altro.

162
00:12:36,170 --> 00:12:43,340
E quindi stiamo andando in questa condizione qui e poi stiamo iterando fino al Treacher Buehler cosa dovresti

163
00:12:43,340 --> 00:12:44,760
avere l'altro thread.

164
00:12:44,780 --> 00:12:51,400
Non conoscete il thread e Vinoba le altre terze note di una pagina, quindi sapete che in una durata di un giorno diverso l'emulazione

165
00:12:51,950 --> 00:12:53,860
di Hetchy sarebbe uguale a no.

166
00:12:53,860 --> 00:12:59,110
Ora non si sa e questo mi porta accanto alla pagina e non lo sappiamo.

167
00:12:59,510 --> 00:13:08,280
Detto questo, permettimi di andare avanti e lanciarlo in modo che tu possa vedere che non è stato scaricato, non è il tuo ordine,

168
00:13:09,380 --> 00:13:11,450
quindi funziona semplicemente qualunque cosa.

169
00:13:13,550 --> 00:13:15,300
Ora è fatto.

170
00:13:15,440 --> 00:13:22,490
Quindi qui l'ID che documenta la pagina Web con ID 2000 è stato indicizzato ed è ancora una volta in

171
00:13:22,650 --> 00:13:24,800
stampa 2002 Non lo sai.

172
00:13:24,860 --> 00:13:28,950
E poi, una volta scaricato, lo stiamo indicizzando.

173
00:13:28,970 --> 00:13:36,650
Il prossimo Internet lo sta indicizzando e altre minacce potrebbero essere state sicuramente le migliori in alto.

174
00:13:36,690 --> 00:13:37,120
OK.

175
00:13:37,180 --> 00:13:38,960
Quindi non possiamo raggiungerli qui.

176
00:13:39,160 --> 00:13:40,690
Ecco come funziona.

177
00:13:40,690 --> 00:13:44,160
Quindi è così che stiamo cooperando che stanno incorporando.

178
00:13:44,260 --> 00:13:44,730
OK.

179
00:13:44,810 --> 00:13:50,140
Così fa il secondo terzo indicizzatore che sta valutando usando un ciclo while qui in uno o due.

180
00:13:50,580 --> 00:13:54,520
Ed ecco come alcune note un po 'qui.

181
00:13:54,610 --> 00:14:00,820
Quindi qui colpisce G. M. B. H. è dichiarato come piastrella volatile e vuoto

182
00:14:00,810 --> 00:14:03,180
e se ci sono spazi vuoti questo approccio sta creando il doppio del numero.

183
00:14:03,210 --> 00:14:08,650
È giusto perché per ogni repubblica stiamo creando due thread ma la limitazione qui

184
00:14:08,650 --> 00:14:15,200
è che il sito CPO diventa un indicizzatore steward come se fosse in attesa del download degli upbeats.

185
00:14:15,430 --> 00:14:18,910
Quindi, come sta aspettando, abbiamo questo ciclo finito in corso.

186
00:14:18,940 --> 00:14:24,490
Quindi quello sarebbe psico sugli studi olandesi e da Bikaner fa un buon indicizzatore.

187
00:14:24,700 --> 00:14:31,540
E questo è ciò che cercheremo di migliorare per migliorare le demo successive della prossima demo, ovvero

188
00:14:31,630 --> 00:14:37,340
l'utilizzo dell'approccio esca e notifica che migliora effettivamente questo approccio e lo vedremo.

189
00:14:37,570 --> 00:14:38,430
Quindi questo è tutto.

190
00:14:38,440 --> 00:14:41,700
E questa carta è disponibile nella sezione risorse.

191
00:14:41,770 --> 00:14:43,280
Grazie e arrivederci alla prossima lezione.
