回答編集履歴
3
スレッドに関係なく、純粋に同期処理と非同期処理に関しての言及に修正
test
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
# 同期処理
|
6
6
|
|
7
|
-
同期処理は、
|
7
|
+
同期処理は、順番通り(だいたいの言語は上の行から)直列で順番に処理が行われることです。
|
8
8
|
|
9
9
|
ある処理が先に走ったとき、その処理が終了するまで、次の処理は実行されません。
|
10
10
|
|
@@ -18,13 +18,15 @@
|
|
18
18
|
|
19
19
|
# 非同期処理
|
20
20
|
|
21
|
-
メインの
|
21
|
+
メインの処理が動きつつも、並行して実行させる処理です。
|
22
22
|
|
23
|
-
ゆえに、メインの
|
23
|
+
ゆえに、メインの処理が実行されてる間に、同時に処理を進めることができるので、
|
24
24
|
|
25
25
|
重い処理をバックグラウンド(非同期)で実行させることにより、
|
26
26
|
|
27
27
|
メインの処理、表示に影響を出さずにいれます。
|
28
|
+
|
29
|
+
ようは、重い処理の終了を同期的に待たずに、軽い処理やメインの処理を先に実行、とすることができるというわけです。
|
28
30
|
|
29
31
|
よく使われる処理としては、HTTP通信でのAPI使用時に、レスポンスを受け取るとかです。
|
30
32
|
|
@@ -38,11 +40,17 @@
|
|
38
40
|
|
39
41
|
よって、非同期処理の際は、基本的に、処理が終わった際に実行されるコールバックを用意し、
|
40
42
|
|
41
|
-
そのコールバックで、メインの
|
43
|
+
そのコールバックで、メインの処理の変数に代入、処理の続きを行う、ということをします。
|
42
44
|
|
43
45
|
Swiftでよく使うフレームワークである、
|
44
46
|
|
45
47
|
UIKit/AppKitにおいては、非同期処理の多くは、**デリゲート**を使用しています。
|
48
|
+
|
49
|
+
|
50
|
+
|
51
|
+
また、今回の話は、**スレッド**についても深く関係してきますので、
|
52
|
+
|
53
|
+
より理解するには、学習が必要かと思います。
|
46
54
|
|
47
55
|
|
48
56
|
|
2
デリゲートの多用は、swiftではなく、swiftでよく使用するフレームワークにおいてと追記
test
CHANGED
@@ -40,7 +40,9 @@
|
|
40
40
|
|
41
41
|
そのコールバックで、メインのスレッドの変数に代入、処理の続きを行う、ということをします。
|
42
42
|
|
43
|
+
Swiftでよく使うフレームワークである、
|
44
|
+
|
43
|
-
|
45
|
+
UIKit/AppKitにおいては、非同期処理の多くは、**デリゲート**を使用しています。
|
44
46
|
|
45
47
|
|
46
48
|
|
1
学習方法を提示
test
CHANGED
@@ -51,3 +51,15 @@
|
|
51
51
|
|
52
52
|
|
53
53
|
各用語に関しては、ご自身でお調べください。
|
54
|
+
|
55
|
+
|
56
|
+
|
57
|
+
学習の仕方ですが・・・、一番いいのは、WebAPI用意してー、ですが、(最近はよくAPI処理をする案件がほとんどのため)
|
58
|
+
|
59
|
+
デバイス内の重いファイルに対しての非同期処理、といった形で練習すればいいのではないでしょうか?
|
60
|
+
|
61
|
+
APIに関しては、書籍もいっぱいありますし、
|
62
|
+
|
63
|
+
画像や動画処理に関しては、書籍もいっぱいありますし、
|
64
|
+
|
65
|
+
Swiftの練習としてはかなりいい教材になると思いますよ。
|