回答編集履歴

3

スレッドに関係なく、純粋に同期処理と非同期処理に関しての言及に修正

2020/04/17 09:28

投稿

miyabi_pudding
miyabi_pudding

スコア9528

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でよく使用するフレームワークにおいてと追記

2020/04/17 09:28

投稿

miyabi_pudding
miyabi_pudding

スコア9528

test CHANGED
@@ -40,7 +40,9 @@
40
40
 
41
41
  そのコールバックで、メインのスレッドの変数に代入、処理の続きを行う、ということをします。
42
42
 
43
+ Swiftでよく使うフレームワークである、
44
+
43
- Swiftにおいては、非同期処理の多くは、**デリゲート**を使用しています。
45
+ UIKit/AppKitにおいては、非同期処理の多くは、**デリゲート**を使用しています。
44
46
 
45
47
 
46
48
 

1

学習方法を提示

2020/04/17 05:07

投稿

miyabi_pudding
miyabi_pudding

スコア9528

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の練習としてはかなりいい教材になると思いますよ。