WEBVTT

1
00:02.800 --> 00:07.780
Evet arkadaşlar, şimdi mahkemenin bu
bölümünde dinleyici konuları kavramını
anlayacağız.

2
00:08.620 --> 00:14.320
Dolayısıyla, bir uygulamanın sürekli
olarak harici olayları dinlemesi çok
yaygın bir senaryodur.

3
00:14.620 --> 00:14.980
Doğru.

4
00:15.340 --> 00:21.460
Bu harici olaylar, bir uygulamanın bu
olayları doğru şekilde işlemesi gereken
herhangi bir zamanda gelebilir.

5
00:21.970 --> 00:26.440
Böylece uygulama bu harici olayları
dinlemek için iş parçacıkları
kullanabilir.

6
00:26.890 --> 00:33.790
Yani buradaki tüm iş parçacıklarını, bir
uygulamanın herhangi bir zamanda

7
00:33.790 --> 00:37.270
alabileceği bu harici olayları sürekli
dinleyen bir araba gibi kullanırlar.

8
00:38.020 --> 00:41.220
Şimdi bunu resimsel gösterimle anlamaya
başlayalım.

9
00:41.620 --> 00:47.140
Diyelim ki sistemde çalışan bir B
Süreciniz var ve bu

10
00:47.140 --> 00:49.450
sürecin birden fazla harici olayı
dinlemesini istiyorsunuz, değil mi?
Dolayısıyla

11
00:50.740 --> 00:57.100
ilk gereksinimimiz, bir sürecin herhangi
bir zamanda değil, dışarıdan gelebilecek

12
00:57.100 --> 01:01.150
bir B paketini gerçekten alabilecek bir
konumda olması gerektiğidir.

13
01:01.450 --> 01:01.840
Doğru.

14
01:02.260 --> 01:07.600
Bunun için B süreciniz bir üçlü
oluşturabilir, biz buna yapılacaklar
listesi diyoruz.

15
01:07.600 --> 01:13.930
Bu başlığın sorumluluğu sadece herhangi
bir

16
01:13.930 --> 01:14.410
paketin ulaşıp ulaşmadığını izlemek
değildir.

17
01:14.830 --> 01:15.190
Doğru.

18
01:15.580 --> 01:20.920
Paket gelmemişse, bu paket dinleyici iş
parçacığı paketin

19
01:20.920 --> 01:22.320
orada olup olmadığını görmek için izlemeye
devam edecektir.

20
01:22.870 --> 01:28.660
Ve eğer paket bu pakete ulaştıysa, ya
paket okunmaz

21
01:28.660 --> 01:30.070
ya da paket işlenir veya ana sürece teslim
edilir.

22
01:30.070 --> 01:31.960
Paket işleme için olun.

23
01:32.350 --> 01:32.680
Değil mi? Yani B Süreci kendi

24
01:33.640 --> 01:40.540
başına dış dünyadan gelen herhangi bir

25
01:40.540 --> 01:40.960
paketi dinlemek veya izlemekle meşgul
değildir.

26
01:41.230 --> 01:48.400
Ancak bu işi paket dinleyici iş parçacığı
olarak adlandırdığımız ayrı bir iş

27
01:49.510 --> 01:53.680
parçacığına devretti, değil mi? Süreç
başka bir iç mantığı yürütmekle meşgul
olabilir.

28
01:53.950 --> 01:54.310
Doğru mu? Benzer şekilde, b

29
01:55.840 --> 02:02.590
işleminiz altta yatan işletim sisteminden

30
02:02.590 --> 02:04.180
bildirilen bazı olayları bekliyor
olabilir.

31
02:04.510 --> 02:10.780
Altta yatan işletim sistemini çekirdek
hakkı olarak adlandırıyoruz ve

32
02:10.780 --> 02:15.910
B sürecinin çekirdekten bildirilecek bazı
olayları beklemesi çok olasıdır.

33
02:16.360 --> 02:22.720
Bu durumda, tüm süreç kernel even
dinleyici iş

34
02:22.720 --> 02:23.830
parçacığı olarak adlandırdığımız ikinci
bir iş parçacığı oluşturabilir,

35
02:24.880 --> 02:31.510
değil mi? Bu iş parçacığının sorumluluğu
sadece dinlemek

36
02:31.510 --> 02:32.540
ve olay geldiğinde kernel even'ın
gelmesini beklemektir.

37
02:32.560 --> 02:39.070
Bu iş parçacığı ya olayı kendi başına
işler ya

38
02:39.070 --> 02:40.660
da olayları işlemesi için B Sürecine
devreder, değil mi?

39
02:41.710 --> 02:46.690
Benzer şekilde, p işleminizin kullanıcı
girdisini gerçekten beklemesini
istersiniz.

40
02:47.050 --> 02:47.440
Değil mi? Bu işlem için kullanıcı girişi
dinleyici

41
02:47.860 --> 02:52.780
iş parçacığı adında üçüncü bir iş
parçacığı oluşturabiliriz.

42
02:53.230 --> 02:58.900
Ve bu iş parçacığının sorumluluğu sadece
kullanıcının herhangi bir girdi
sağlamasını beklemektir.

43
02:59.110 --> 03:03.610
Giriş, Seelye arayüzü veya GUI arayüzü
kullanılarak sağlanabilir.

44
03:03.640 --> 03:05.230
Önemli değil, değil mi? Yani kullanıcı
girdisini bekleme sorumluluğu

45
03:06.410 --> 03:12.210
kullanıcı girdi listesi adı verilen yeni
parçaya devredildi, tehdit

46
03:12.240 --> 03:13.670
yok, değil mi? Başka bir senaryoda, bir B
süreci,

47
03:16.170 --> 03:22.560
aynı sistem üzerinde çalışan başka bir b
dash sürecinden

48
03:22.560 --> 03:25.140
bazı veriler veya bir tür olay bekliyor
olabilir.

49
03:25.590 --> 03:25.950
Doğru.

50
03:26.490 --> 03:31.830
Bu durumda, süreç çalışanlarınız süreç
iletişim dizisi adı

51
03:31.830 --> 03:32.250
verilen dördüncü bir üçlü oluşturmaya
karar verir.

52
03:33.030 --> 03:39.570
Bu iş parçacığının sorumluluğu sadece
başka bir

53
03:39.570 --> 03:39.950
süreçten bildirilen bazı olayları veya
verileri beklemektir.

54
03:40.270 --> 03:41.820
Ash aynı sistemde

55
03:42.210 --> 03:42.570
mi çalışıyor? Doğru.

56
03:44.470 --> 03:49.900
Dolayısıyla, tüm bu programa bütüncül bir
bakış açısıyla bakarsanız, tüm gıda
tehditlerinin, bu hiç kimse,

57
03:49.900 --> 03:54.760
bu iki numaralı tehdit, bu üç numaralı
tehdit ve dört numaralı hedef olduğunu
görürsünüz.

58
03:55.450 --> 03:58.150
Dört tehdit de engelleme durumundadır.

59
03:58.600 --> 04:04.630
Engelleme durumu, harici bir varlıktan
gelen bir girdi için bile bekledikleri
anlamına gelir.

60
04:05.050 --> 04:11.050
Bu harici varlık kullanıcı olabilir, albay
olabilir, çalışmıyor olabilir ya da

61
04:11.860 --> 04:18.040
başka bir şey olabilir, değil mi?
Dolayısıyla, sürecinizin blok durumunda

62
04:18.040 --> 04:20.200
olmasını istemezsiniz çünkü süreciniz
kendi iç mantığını yürütmekle meşgul
olabilir.

63
04:20.770 --> 04:27.010
Ve bu nedenle, ana mantığınızın bir olayı
beklerken bloke olmasını

64
04:27.010 --> 04:29.890
istemediğiniz için, süreç p dinleyici
tehditleri yaratır, değil mi?

65
04:30.190 --> 04:33.670
Bu dinleyici tehditler süreç adına bir
köle gibi çalışır.

66
04:33.670 --> 04:36.880
Dışarıdan bir olayın gelmesini bekliyor
olmak.

67
04:37.390 --> 04:37.750
Tamam.

68
04:38.050 --> 04:42.550
Böylece dinleyici iş parçacıkları
kullanarak, süreç tüm olayları aynı anda
dinleyebilir.

69
04:43.480 --> 04:49.390
Ve olay geldiğinde, süreciniz bu olayları
işleyebilecek bir konumda olmalıdır, değil
mi?

70
04:49.720 --> 04:54.250
Bu yüzden bu bölümde alıştırma olarak bir
B Süreci yazmayı bekliyoruz.

71
04:55.000 --> 05:00.370
Bu nedenle, kursun bu bölümü için bir
gösteri

72
05:00.380 --> 05:07.720
olarak yazacağımız kod, insanların
sorumluluğu harici olayları dinlemek

73
05:07.720 --> 05:09.460
olan köle etiketleri oluşturacak bir B
süreci yazacaklarıdır.

74
05:10.150 --> 05:15.880
Bu nedenle, herhangi bir soket programlama
deneyiminiz olmasa bile, kursun

75
05:15.880 --> 05:17.800
bu bölümü için biraz soket programlama
deneyimine ihtiyacınız var.

76
05:17.800 --> 05:23.530
Yine de kursun bu bölümüne devam etmenizi
tavsiye ederim çünkü soketle

77
05:23.530 --> 05:27.550
ilgili herhangi bir programlama, eğer
müsait değilseniz, benim kodumu kopyalayıp
yapıştırabilirsiniz.

78
05:28.000 --> 05:33.610
Ancak sonuçta, hiç soket programlama
deneyiminiz olmasa bile, dinleyici

79
05:33.610 --> 05:40.270
iş parçacığı kavramını kullanarak birden
fazla harici olayı

80
05:40.270 --> 05:41.980
dinleyebilen bir sürecin veya uygulamanın
nasıl tasarlanacağını anlayacaksınız.

81
05:43.270 --> 05:48.130
Yani yapacağımız şey, uygulamamızın yanı
sıra birden fazla

82
05:48.130 --> 05:52.480
ağ UDP soketini dinleyeceğimiz bir
uygulama uygulayacaktık.

83
05:52.480 --> 05:55.580
Aynı zamanda, kullanıcı girdisini
bekleyeceğiz.

84
05:55.930 --> 05:56.290
Doğru.

85
05:56.650 --> 06:03.340
Yani bunlar, uygulamanın dinleyeceği iki
harici olaydır. Harici

86
06:03.340 --> 06:07.600
olayı dinleme tekniği, olayın türüne
bakılmaksızın aynıdır.

87
06:07.900 --> 06:13.390
Dolayısıyla, bu örnekte ya da tanıtım
programında, çekirdek olaylarını

88
06:13.390 --> 06:15.610
dinlemeyi ya da diğer süreçlerin
olaylarını dinlemeyi ele almadık.

89
06:15.850 --> 06:22.300
Bunun nedeni, herhangi bir çekirdek
programlamasından haberdar olmadığınızı ve

90
06:22.300 --> 06:25.510
süreçler arasındaki süreç içi iletişimden
haberdar olmadığınızı varsaymamdır.

91
06:25.870 --> 06:26.210
Doğru.

92
06:27.250 --> 06:32.890
Ancak dediğim gibi, olayların türüne
bakılmaksızın dışarıdan dinleme tekniği
aynıdır.

93
06:33.130 --> 06:40.210
Bu basitçe, harici bir olayı dinlemek için
bir bağımlı

94
06:40.210 --> 06:41.140
iş parçacığı konuşlandırmanın olay türüne
bağlı olmadığı anlamına gelir.

95
06:41.440 --> 06:47.380
Yani eğer yarın, çekirdek olaylarının iki
süreç arasındaki iletişime girdiğini

96
06:47.380 --> 06:53.230
öğrenirseniz, çekirdek olaylarını ve diğer
süreçlerden gelen olayları dinlemek

97
06:53.230 --> 06:57.160
için kursun bu bölümünde uygulayacağımız
aynı tasarımla devam edebilirsiniz.

98
06:57.460 --> 06:57.790
Değil mi? Uygulayacağımız uygulamanın
temel tasarımı

99
06:58.630 --> 07:04.570
değişmeyecek ve kursun bu bölümü için

100
07:04.570 --> 07:07.690
tüm kodlar bu dizinde bulunabilir, değil

101
07:07.720 --> 07:10.420
mi? Multithreading Bible slash olay
dinleyicileri.


