WEBVTT

1
00:07.200 --> 00:16.380
Şimdi bir örnek vereyim ve bu dört senkron
ve asenkron hesaplama modelinin

2
00:17.520 --> 00:21.240
belirli bir problemi dört farklı şekilde
çözmek için nasıl kullanılabileceğini
tartışalım.

3
00:22.350 --> 00:27.120
Bu kadar basit bir şekilde 10 büyüklüğünde
bir tamsayı dizimiz olduğunu varsayalım.

4
00:27.720 --> 00:34.050
Şimdi, size bunun üzerinde bir görev
gerçekleştirmeniz gerektiğini söylersem,

5
00:34.050 --> 00:39.300
ilk görev tüm sayıların toplamını ve ayarı
hesaplamak, ikinci

6
00:39.300 --> 00:40.410
görev ise bu ADI'deki tüm sayıların
çarpımını hesaplamaktır.

7
00:41.760 --> 00:46.950
Açıkçası, normal günlük hayatınızda
senkronize tek

8
00:46.950 --> 00:47.460
iş parçacıklı bir program yazacaktınız.

9
00:48.630 --> 00:54.360
Basitçe, önce bu alandaki tüm tamsayıların
toplamını hesaplayacağınız ve ardından

10
00:54.360 --> 00:58.080
bu alandaki tüm tamsayıların çarpımını
hesaplayacağınız bir deneme başlattınız.

11
00:58.170 --> 00:59.280
Bu kadar basit.

12
00:59.910 --> 01:06.390
Sizden bu girdi üzerinde bu iki görevi
yerine getirecek bir program

13
01:06.390 --> 01:09.600
yazmanızı istesem, ilk tercihinizin tek
hedefli bir program olacağı açıktır.

14
01:11.830 --> 01:17.980
Ancak sizi aynı sorunu çözmek için
eşzamanlı çok iş parçacıklı bir

15
01:17.980 --> 01:20.710
program yazmaya zorlarsam, o zaman iki kez
başlatmanız mümkün olabilir.

16
01:20.860 --> 01:25.980
İlk iş parçacığı, tüm tam sayıların
toplamını hesaplayan D1 görevini
hesaplayacaktır.

17
01:25.990 --> 01:31.420
Ob-La-Di, ve ikinci iş parçacığı alanın
tüm tam sayılarının çarpımını
hesaplayacaktır.

18
01:32.290 --> 01:32.710
Tamam.

19
01:34.100 --> 01:39.350
Açıkçası, aynı DNA yapısı üzerinde sadece
liderlik işlemi gerçekleştiriyorsunuz, bu
nedenle bu iki

20
01:39.350 --> 01:44.150
görevi paralel olarak gerçekleştirmek için
senkronize çok iş parçacıklı program çok
mümkündür.

21
01:46.640 --> 01:49.580
Çünkü Reid işlemi çakışmayan bir işlemdir.

22
01:49.820 --> 01:53.810
Herhangi bir günlük kaydı veya izleme
senkronizasyonu mekaniği dağıtmanız
gerekmez.

23
01:54.980 --> 02:02.420
Ama şimdi sizden birinci ve ikinci görevi
hesaplamak için eşzamansız, tek iş

24
02:02.420 --> 02:10.340
parçacıklı bir program yazmanızı
isteseydim, o zaman bir program yazacak ve
her

25
02:10.340 --> 02:12.560
bir görevi küçük küçük döngüler halinde
yürüterek toplamı ve çarpımı
hesaplayacaktınız.

26
02:13.280 --> 02:18.020
Önce alandaki ilk üç tam sayının toplamını
hesaplarsınız ve sonra da

27
02:18.020 --> 02:24.170
Tek hedefli program, programınızın
alandaki ilk beş

28
02:24.170 --> 02:27.140
tam sayının çarpımını hesaplayacağı çarpma
görevine geçecektir.

29
02:27.380 --> 02:33.230
Ve sonra programınız herhangi bir tam
sayının toplamını hesaplama görevine
tekrar geçebilir.

30
02:33.470 --> 02:38.300
Ve bu sefer dört numaralı indeksten altı
numaralı indekse kadar olan toplamı
hesaplayacaktır.

31
02:38.630 --> 02:44.300
Ve yine, programınız alandaki tamsayıların

32
02:44.300 --> 02:44.840
çarpımını hesaplayan önceki göreve geçer.

33
02:45.140 --> 02:49.730
Ve bu sefer altı ile dokuz arasındaki
indeks sayısının çarpımını
hesaplayacaktır.

34
02:50.060 --> 02:55.670
Ve son olarak, alanda kalan tam sayıların
toplamını hesaplayacaktır.

35
02:56.420 --> 03:02.780
Yani bu, bir girdi dizisi üzerinde aynı
işlemleri gerçekleştirecek, ancak

36
03:02.780 --> 03:05.090
eşzamansız bir şekilde gerçekleştirecek
eşzamansız, tek iş parçacıklı bir
programdır.

37
03:06.050 --> 03:14.180
Yapılacak işin küçük küçük görevlere
bölünmesi ve daha sonra bu görevlerin
yerine

38
03:14.180 --> 03:21.050
getirilmesi burada, alanın tüm
resimlerinin toplamının hesaplanması
görevi üç alt göreve bölünmüştür.

39
03:23.320 --> 03:23.770
Tamam.

40
03:24.370 --> 03:31.480
Dolayısıyla, US ve eşzamanlı
programlamada, görev önemli miktarda zaman
alacak

41
03:31.480 --> 03:38.680
kadar büyükse, bu tek görevi burada alt
görevlere bölmeyi seçeriz.

42
03:38.770 --> 03:45.640
Bu, sıfır iki üç indeks konumundan
itibaren girdabın tam sayılarının
toplamını hesaplama alt görevidir.

43
03:46.510 --> 03:48.250
Bu da bir başka alt görevdir.

44
03:50.360 --> 03:55.880
Dolayısıyla, ante'nin tüm tam sayılarının
toplamını hesaplama görevimiz üç alt
göreve bölünmüştür.

45
04:00.400 --> 04:02.980
Aynı şey çarpma işlemi için de geçerlidir.

46
04:03.910 --> 04:11.290
Ancak, görev hesaplanması fazla zaman
almayacak kadar küçükse, o zaman

47
04:11.290 --> 04:18.700
eşzamansız tek iş parçacıklı bir model bu
görevi tek

48
04:18.700 --> 04:20.440
seferde hesaplar, bu görevi alt görevlere
bölmeye gerek yoktur.

49
04:21.520 --> 04:27.670
Ve son olarak, aynı girdi üzerinde Görev
bir ve Görev ikiyi hesaplamak için
eşzamansız, tek

50
04:27.670 --> 04:33.190
iş parçacıklı bir program yazmanızı
istesem, herhangi bir dadı iki bağımsız iş
parçacığı başlatacaktır.

51
04:33.760 --> 04:37.720
İlk iplik, tek dişli bir motor tasarımı
üzerinde tek bir tane kullanacaktır.

52
04:40.300 --> 04:42.910
Alanın tüm tam sayılarının toplamını
hesaplamak için.

53
04:43.150 --> 04:50.560
Thread iki ise yine atomun tüm
tamsayılarının çarpımını

54
04:50.560 --> 04:52.000
hesaplamak için tasarlanmış asenkron tek
Typekit modelini kullanacaktır.

55
04:52.900 --> 04:58.900
Ancak bunlar çalışan iki farklı tip
olduğundan,

56
04:58.900 --> 04:59.440
buna asenkron çok iş parçacıklı tasarım
diyoruz.

57
05:01.440 --> 05:07.840
Umarım şimdi bu dört hesaplama modeli
arasında nasıl ayrım yapacağınızı
anlamışsınızdır.

58
05:08.730 --> 05:14.340
Ancak yine de, bir program yazana kadar ya
da bir

59
05:14.340 --> 05:15.480
şeyleri çalışırken görene kadar her şeyin
kristal netliğinde olmayacağına
inanıyorum.

60
05:16.230 --> 05:22.980
Bu nedenle, bu kursun bir sonraki
bölümünden itibaren, gerçekleştirilecek
bir

61
05:22.980 --> 05:31.740
işi bireysel görevlere bölebileceğimiz bir
kütüphane geliştireceğiz ve daha sonra

62
05:31.740 --> 05:33.840
bu görevleri bu slaytta tartıştığım gibi
aynı şekilde yürütebileceğiz.


