﻿1
00:00:01,400 --> 00:00:03,624
‫Instruktur: Jadi, ingatlah bahwa dalam kuliah

2
00:00:03,624 --> 00:00:06,000
‫terakhir, kita berbicara tentang arsitektur Node,

3
00:00:06,000 --> 00:00:07,670
‫di mana dua

4
00:00:07,670 --> 00:00:10,810
‫bagian mendasar adalah kumpulan utas dan loop acara.

5
00:00:10,810 --> 00:00:12,630
‫Jadi dalam kuliah ini, Anda akan

6
00:00:12,630 --> 00:00:14,619
‫mempelajari semua tentang utas dan kumpulan utas.

7
00:00:14,619 --> 00:00:15,771
‫Dan selanjutnya,

8
00:00:15,771 --> 00:00:19,510
‫kita akan menyelam jauh ke dalam loop acara.

9
00:00:19,510 --> 00:00:20,883
‫Jadi, mari kita mulai.

10
00:00:22,230 --> 00:00:25,660
‫Jadi, pertama-tama, ketika kita menggunakan Node di komputer,

11
00:00:25,660 --> 00:00:28,210
‫itu berarti ada proses Node yang

12
00:00:28,210 --> 00:00:30,110
‫berjalan di komputer itu.

13
00:00:30,110 --> 00:00:33,530
‫Dan prosesnya hanyalah sebuah program yang sedang dieksekusi.

14
00:00:33,530 --> 00:00:35,900
‫Dan kita sudah belajar bahwa Node. js pada

15
00:00:35,900 --> 00:00:38,490
‫dasarnya adalah program C++, yang

16
00:00:38,490 --> 00:00:42,040
‫karenanya akan memulai proses saat sedang berjalan.

17
00:00:42,040 --> 00:00:44,100
‫Ini penting karena di Node,

18
00:00:44,100 --> 00:00:46,980
‫kita sebenarnya memiliki akses ke variabel proses, yang

19
00:00:46,980 --> 00:00:49,670
‫akan kita gunakan nanti dalam kursus ini.

20
00:00:49,670 --> 00:00:52,510
‫Sekarang dalam proses itu, Node. js berjalan dalam

21
00:00:52,510 --> 00:00:54,860
‫apa yang disebut, utas tunggal.

22
00:00:54,860 --> 00:00:58,641
‫Dan utas pada dasarnya hanyalah urutan instruksi.

23
00:00:58,641 --> 00:01:01,062
‫Tetapi tidak penting untuk memahami

24
00:01:01,062 --> 00:01:03,690
‫secara mendalam apa itu utas atau proses.

25
00:01:03,690 --> 00:01:05,740
‫Itu lebih tentang ilmu komputer.

26
00:01:05,740 --> 00:01:08,130
‫Bayangkan saja sebuah utas sebagai

27
00:01:08,130 --> 00:01:11,483
‫kotak tempat kode kita dieksekusi di prosesor komputer.

28
00:01:12,750 --> 00:01:15,273
‫Sekarang, yang penting untuk dipahami

29
00:01:15,273 --> 00:01:19,100
‫di sini, adalah fakta bahwa Node berjalan hanya dalam

30
00:01:19,100 --> 00:01:22,346
‫satu utas, yang memudahkan untuk memblokir aplikasi Node.

31
00:01:22,346 --> 00:01:25,273
‫Dan ini adalah sesuatu yang kita bicarakan sebelumnya, sebenarnya.

32
00:01:25,273 --> 00:01:28,650
‫Tapi itu sesuatu yang sangat, sangat penting untuk diingat karena

33
00:01:28,650 --> 00:01:30,586
‫ini adalah salah satu fitur

34
00:01:30,586 --> 00:01:33,029
‫unik dari Node.js. js membawa ke meja.

35
00:01:33,029 --> 00:01:36,370
‫Jadi, sekali lagi, jika Anda menjalankan aplikasi Node Anda, itu

36
00:01:36,370 --> 00:01:38,710
‫akan berjalan hanya dalam satu utas.

37
00:01:38,710 --> 00:01:41,834
‫Tidak masalah jika Anda memiliki 10 pengguna atau

38
00:01:41,834 --> 00:01:45,030
‫10 juta pengguna yang mengakses aplikasi Anda secara bersamaan.

39
00:01:45,030 --> 00:01:47,210
‫Jadi, Anda harus sangat

40
00:01:47,210 --> 00:01:49,610
‫berhati-hati agar tidak memblokir utas itu.

41
00:01:49,610 --> 00:01:51,042
‫Dan tentu saja

42
00:01:51,042 --> 00:01:53,723
‫kami akan menanganinya selama proyek dalam kursus ini.

43
00:01:54,890 --> 00:01:57,010
‫Selanjutnya, mari sekarang dengan cepat

44
00:01:57,010 --> 00:01:59,700
‫memahami apa yang terjadi dalam satu utas

45
00:01:59,700 --> 00:02:02,040
‫saat Anda memulai aplikasi Node Anda.

46
00:02:02,040 --> 00:02:04,730
‫Jadi ketika program diinisialisasi, semua kode tingkat

47
00:02:04,730 --> 00:02:07,440
‫atas dijalankan, yang berarti semua kode yang

48
00:02:07,440 --> 00:02:09,060
‫tidak ada di

49
00:02:09,060 --> 00:02:10,933
‫dalam fungsi panggilan balik.

50
00:02:12,020 --> 00:02:16,200
‫Juga, semua modul yang dibutuhkan aplikasi Anda diperlukan dan semua

51
00:02:16,200 --> 00:02:18,560
‫panggilan balik terdaftar, seperti yang

52
00:02:18,560 --> 00:02:20,300
‫kami gunakan untuk

53
00:02:20,300 --> 00:02:23,390
‫server HTP kami di Aplikasi Node Farm.

54
00:02:23,390 --> 00:02:24,589
‫Ingat itu?

55
00:02:24,589 --> 00:02:29,589
‫Kemudian setelah semua itu, loop acara akhirnya mulai berjalan.

56
00:02:29,890 --> 00:02:33,000
‫Dan lagi, lebih banyak tentang acara dalam lingkaran di video berikutnya.

57
00:02:33,000 --> 00:02:35,500
‫Yang perlu Anda ketahui untuk saat ini adalah bahwa

58
00:02:35,500 --> 00:02:38,410
‫loop peristiwa adalah tempat sebagian besar pekerjaan dilakukan di aplikasi Anda.

59
00:02:38,410 --> 00:02:42,600
‫Jadi, ini adalah inti dari keseluruhan arsitektur Node.

60
00:02:42,600 --> 00:02:46,640
‫Tapi inilah masalahnya, beberapa tugas sebenarnya terlalu berat.

61
00:02:46,640 --> 00:02:50,570
‫Mereka terlalu mahal untuk dieksekusi di loop acara karena

62
00:02:50,570 --> 00:02:53,510
‫mereka kemudian akan memblokir utas tunggal.

63
00:02:53,510 --> 00:02:56,770
‫Jadi, di situlah kumpulan utas masuk, yang

64
00:02:56,770 --> 00:02:58,610
‫seperti loop acara, disediakan

65
00:02:58,610 --> 00:03:01,670
‫untuk Node.js. js oleh perpustakaan

66
00:03:01,670 --> 00:03:03,890
‫libuv yang kita bicarakan sebelumnya.

67
00:03:03,890 --> 00:03:07,140
‫Jadi, kumpulan utas memberi kita empat utas

68
00:03:07,140 --> 00:03:10,560
‫tambahan yang sepenuhnya terpisah dari utas tunggal utama.

69
00:03:10,560 --> 00:03:14,170
‫Dan kami benar-benar dapat mengonfigurasinya hingga 128 utas.

70
00:03:14,170 --> 00:03:16,670
‫Tapi biasanya, empat ini sudah cukup.

71
00:03:16,670 --> 00:03:19,630
‫Jadi utas ini bersama-sama membentuk kumpulan utas.

72
00:03:19,630 --> 00:03:21,840
‫Dan loop acara kemudian

73
00:03:21,840 --> 00:03:25,490
‫dapat secara otomatis memindahkan tugas berat ke kumpulan utas.

74
00:03:25,490 --> 00:03:28,490
‫Dan semua ini terjadi secara otomatis di belakang layar.

75
00:03:28,490 --> 00:03:30,680
‫Bukan kami pengembang yang memutuskan apa

76
00:03:30,680 --> 00:03:33,253
‫yang masuk ke kumpulan utas dan apa yang tidak.

77
00:03:34,780 --> 00:03:37,849
‫Sekarang, tugas-tugas mahal yang diturunkan adalah

78
00:03:37,849 --> 00:03:41,390
‫semua operasi yang berhubungan dengan file, semua yang

79
00:03:41,390 --> 00:03:44,898
‫berhubungan dengan kriptografi, seperti caching password, kemudian

80
00:03:44,898 --> 00:03:48,860
‫semua hal kompresi, dan juga pencarian DNS, yang pada

81
00:03:48,860 --> 00:03:50,850
‫dasarnya mencocokkan domain

82
00:03:50,850 --> 00:03:54,020
‫web dengan alamat IP asli yang sesuai.

83
00:03:54,020 --> 00:03:55,500
‫Jadi ini adalah

84
00:03:55,500 --> 00:03:57,870
‫hal-hal yang paling mudah memblokir utas utama.

85
00:03:57,870 --> 00:04:00,460
‫Jadi, Node secara otomatis menurunkannya ke

86
00:04:00,460 --> 00:04:02,890
‫kumpulan utas, di mana

87
00:04:02,890 --> 00:04:05,830
‫mereka tidak memblokir loop acara kami.

88
00:04:05,830 --> 00:04:07,640
‫Dan itu adalah hal terpenting

89
00:04:07,640 --> 00:04:09,923
‫yang saya ingin Anda pertahankan dari video ini.

90
00:04:11,370 --> 00:04:15,693
‫Jadi, sekarang mari kita lanjutkan dan bicara tentang loop acara itu sendiri.

