WEBVTT

1
00:09.220 --> 00:15.190
Öyleyse, çocuklar, şimdi senkronun tam
olarak ne anlama geldiğini anlayalım.

2
00:16.060 --> 00:20.810
Şu ana kadar yazdığınız kod eşzamanlı bir
koddur.

3
00:21.100 --> 00:24.420
Ağaçlarla ilgili kısa programlarımız ya da
bağlantı listemiz de bunu yapıyor.

4
00:24.430 --> 00:31.180
Yapılarımız bilgisayar programcılığıdır
şimdiye kadar yazdığınız

5
00:31.180 --> 00:33.310
tüm o programlarda aslında senkron koddur.

6
00:33.430 --> 00:39.640
Tek bir ortak nokta vardı ve bu ortak

7
00:39.640 --> 00:40.900
nokta algoritmik adımların belirli bir
otomatik olarak uygulanmasıydı.

8
00:41.710 --> 00:42.100
Tamam.

9
00:43.000 --> 00:48.790
Aslında, programın boyutu ne kadar
küçükse, programınızın senkronize olma
olasılığı da o kadar fazladır.

10
00:49.450 --> 00:53.400
Şimdi, pastanın hazırlanmasına ilişkin bir
Gerçek Dünya örneğini ele alalım.

11
00:53.410 --> 00:57.310
Yani, pastayı hazırlamak için gereken
adımlar nelerdir? Ve

12
00:59.980 --> 01:05.110
daha sonra pastayı hazırlamanın eşzamanlı
yolunu ve aynı

13
01:05.110 --> 01:06.970
pastayı hazırlamanın eşzamansız yolunun ne
olacağını tartışacağız.

14
01:08.050 --> 01:14.110
Dolayısıyla, pastayı hazırlamak için
ihtiyacınız olan ilk şey,

15
01:14.110 --> 01:16.870
ilk etapta pastayı hazırlamak için ihtiyaç
duyacağınız malzemelerdir.

16
01:17.410 --> 01:23.560
Daha sonra bu malzemeleri uygun oranlarda
birbirleriyle karıştıracaksınız.

17
01:24.340 --> 01:28.750
Ancak bir sonraki adımda, doğru sıcaklığa
kadar açık olduğunuzu ısıtacaksınız.

18
01:29.470 --> 01:29.890
Tamam.

19
01:30.220 --> 01:34.930
Fırın doğru sıcaklığa ısıtıldıktan sonra
keki pişirmeye başlayacaksınız.

20
01:35.620 --> 01:40.060
Ve son olarak, pastanın hazır olmasını
bekleyeceksiniz.

21
01:40.300 --> 01:42.820
Ve pasta hazır olduğunda, o zaman
yersiniz.

22
01:43.450 --> 01:43.840
Tamam.

23
01:44.290 --> 01:50.800
Dolayısıyla bu çok basit örnekte ortak
olan bir şey var

24
01:50.800 --> 01:53.650
ve o da adımları belirli bir sırayla
gerçekleştirmeniz gerektiğidir.

25
01:54.280 --> 02:01.090
Pastayı hazırlamak için bu adımlardan
herhangi birinin

26
02:01.090 --> 02:01.690
sırasını değiştiremezsiniz veya sırayı
değiştirseniz bile.

27
02:01.720 --> 02:06.370
Ortak olan bir şey varsa o da iki adımı
aynı anda gerçekleştiremeyeceğinizdir.

28
02:07.390 --> 02:12.130
Burada dikkat etmeniz gereken bir diğer
husus da kek hazır olana kadar beklemeniz
gerektiğidir.

29
02:12.460 --> 02:14.320
Yani bu eşzamanlı bir yöntemdir.

30
02:14.320 --> 02:19.540
Tüm bu adımları uygulayacağınız kısa bir
program yazarsanız, bir numaralı adım,

31
02:19.540 --> 02:25.060
iki numaralı adım, üç numaralı adım, dört
numaralı adım, beş numaralı

32
02:25.060 --> 02:28.570
adım ve altı numaralı adım olarak
bölünecek bir algoritma uygulayacaksınız.

33
02:29.080 --> 02:33.940
Yani, programınız birden altıya kadar iki
adımı aynı sırayla yürütecektir.

34
02:35.230 --> 02:37.960
Ve bu program senkronize bir program
olarak adlandırılacaktır.

35
02:38.680 --> 02:42.970
Şimdi aynı pastayı hazırlamanın eşzamansız
halinin ne olacağını görelim.

36
02:43.720 --> 02:50.200
Elbette, her zamanki gibi degradeleri
gerekli oranda birbiriyle
karıştıracaksınız.

37
02:51.190 --> 02:57.520
Ancak malzemeleri karıştırırken, aslında
hepsini paralel

38
02:57.520 --> 02:58.780
olarak doğru sıcaklığa kadar ısıtmanız
mümkündür.

39
02:59.590 --> 03:00.010
Tamam.

40
03:00.370 --> 03:06.160
Ve or1 doğru sıcaklığa kadar
ısıtıldığında, keki yapmaya
başlayacaksınız,

41
03:06.160 --> 03:11.380
böylece sol taraftaki bu adımların ve sağ
taraftaki tümünün

42
03:11.380 --> 03:13.150
doğru sıcaklığa kadar ısıtılmasının
paralel olarak yapılabileceğini
görebilirsiniz.

43
03:15.460 --> 03:23.440
Pekala, daha da ileri giderek, pasta hazır
olduğunda, hepimizin otomatik

44
03:23.440 --> 03:26.530
olarak bir olduğumuzu ve pasta piştiğinde
alarm verdiğini varsayalım.

45
03:27.010 --> 03:28.570
Sonra pastayı yemeye başlarsın.

46
03:29.350 --> 03:29.740
Tamam.

47
03:30.040 --> 03:37.510
Büyük makineniz size kekinizin piştiğini
söyleyen bir alarm

48
03:37.510 --> 03:39.970
üretir ve kekiniz hazır olduğunda keki
yemeye başlarsınız.

49
03:40.630 --> 03:42.830
Yani senkronize bir şekilde fena değil.

50
03:42.850 --> 03:44.770
Beklemek yok.

51
03:45.400 --> 03:48.210
Pastanın hazır olmasını beklemiyorsunuz.

52
03:48.220 --> 03:49.630
Sen başka bir şey yapıyorsun.

53
03:50.410 --> 03:52.030
İşte bekliyorsunuz.

54
03:52.510 --> 03:56.530
Ve bu örnekte, pastanın hazır olmasını
beklemiyorsunuz.

55
03:56.540 --> 03:57.940
Sen başka bir şey yapıyorsun.

56
03:58.640 --> 04:02.830
Pişirme makineniz size kekin hazır
olduğunu bildiren bir alarm verecektir.

57
04:03.340 --> 04:06.870
Yani yaptığınız iş her neyse, onu yapmayı
bırakabilirsiniz.

58
04:06.880 --> 04:08.440
Geri gel ve pastayı ye.

59
04:09.520 --> 04:09.910
Tamam.

60
04:10.870 --> 04:15.400
Dolayısıyla, kek pişirme örneğinin bu
eşzamansız yönteminden iki çıkarım.

61
04:15.850 --> 04:19.280
Birincisi, paralel olarak yapılabilecek
adımların gerçekleştirilmesidir.

62
04:19.960 --> 04:24.100
Paralel olarak gerçekleştirilebilecek bu
adımları paralel olarak yapın.

63
04:24.670 --> 04:31.270
İkinci çıkarım ise bir şeyi engellememeniz
veya tamamlanmasını beklememeniz
gerektiğidir.

64
04:32.680 --> 04:34.840
Bu yüzden paralel olarak bağımsız görevler
yapın.

65
04:34.900 --> 04:41.470
Bu asenkron programlamanın kurallarından
biridir ve programınız beklememelidir.

66
04:41.500 --> 04:46.960
Aslında, programınız başka bir şey yapmalı
ve programınız, programın başka

67
04:46.960 --> 04:52.990
bir bölümüne "Hey, sonucu hesapladım, gel
ve tüket" diyen bir

68
04:52.990 --> 04:55.120
sinyal veya bir tür bildirim üretecek bir
mekanizmaya sahip olmalıdır.

69
04:56.110 --> 04:56.500
Tamam.

70
04:56.920 --> 05:03.100
Dolayısıyla, programınız bir şeyin
tamamlanması için bloke

71
05:03.100 --> 05:04.480
olursa, bu neredeyse kötü bir yazılım
tasarımıdır.

72
05:05.230 --> 05:08.920
Makinenizin veya kaynaklarınızın yetersiz
kullanılmasına neden olur.

73
05:09.850 --> 05:15.310
Ve son olarak, asenkron programlama çoklu
iş parçacığı anlamına gelmez, ancak
bununla yakından bağlantılıdır.

74
05:15.880 --> 05:16.270
Tamam.

75
05:17.140 --> 05:21.370
Bu yüzden bu derste size bir programın
nasıl yazılacağını ve

76
05:21.370 --> 05:22.960
programın farklı bölümleriyle bazı farklı
sıraların nasıl yürütüleceğini
göstereceğim.

77
05:23.620 --> 05:28.570
Ancak sonuçta, programda senkronize bir
şekilde yazdığınızla aynı sonuca
ulaşırsınız.


