Swift   发布时间:2022-03-31  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Swift - 多线程实现方式(1) - Thread大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_874_2@

概述

1,Swift继续使用Object-C原有的一套线程,包括三种多线程编程技术: (1)Thread (2)Cocoa Operation(Operation和OperationQueue) (3)Grand Central Dispath(GCD) 2,本文着重介绍Thread Tread在三种多线程技术中是最轻量级的,但需要自己管理线程的生命周期和线程同步。线程同步对数据的加锁会有一定的系统开销
@H_874_2@
@H_874_2@ @H_874_2@
1,Swift继续使用Object-C原有的一套线程,包括三种多线程编程技术:
(1)Thread @H_874_2@
(2)Cocoa Operation(Operation和OperationQueue) @H_874_2@
(3)Grand Central Dispath(GCD) @H_874_2@

@H_874_2@
2,本文着重介绍Thread @H_874_2@
Tread在三种多线程技术中是最轻量级的,但需要自己管理线程的生命周期和线程同步。线程同步对数据的加锁会有一定的系统开销。(本文@L_673_1@已全部更新至Swift3) @H_874_2@
3,Thread的两种创建方式 @H_874_2@
(1)直接创建线程并且自动运行线程 @H_874_2@
(2)先创建一个线程对象,然后手动运行线程,在运行线程操作之前可以设置线程的优先级等线程信息。 @H_874_2@
@H_450_44@
1 @H_874_2@
2 @H_874_2@
3 @H_874_2@
4 @H_874_2@
5 @H_874_2@
6 @H_874_2@
7 @H_874_2@
8 @H_874_2@
9 @H_874_2@
10 @H_874_2@
11 @H_874_2@
12 @H_874_2@
13 @H_874_2@
14 @H_874_2@
15 @H_874_2@
16 @H_874_2@
17 @H_874_2@
18 @H_874_2@
19 @H_874_2@
20 @H_874_2@
21 @H_874_2@
22 @H_874_2@
23 @H_874_2@
24 @H_874_2@
25 @H_874_2@
26 @H_874_2@
27 @H_874_2@
28 @H_874_2@
29 @H_874_2@
import UIKit @H_874_2@
@H_874_2@
class ViewController : UIViewController { @H_874_2@
@H_874_2@
override func viewDidLoad() { @H_874_2@
super .viewDidLoad() @H_874_2@
@H_874_2@
//方式1:使用类方法 @H_874_2@
Thread .detachNewThreadSELEctor(#SELEctor( .downloadImagE), @H_874_2@
@R_125_10586@rget: self ,with: nil ) @H_874_2@
@H_874_2@
//方式2:实例方法-便利构造器 @H_874_2@
let myThread = (target: :1.5em!important; margin:0px!important; overflow:visible!important; padding:1px 0px!important; position:static!important; right:auto!important; top:auto!important; vertical-align:baseline!important; width:auto!important; font-family:Consolas, @H_874_2@
SELEctor: #SELEctor( :1.5em!important; margin:0px!important; overflow:visible!important; padding:1px 0px!important; position:static!important; right:auto!important; top:auto!important; vertical-align:baseline!important; width:auto!important; font-family:Consolas, @H_874_2@
object: @H_607_187@) @H_874_2@ @H_197_190@myThread.start() @H_874_2@
} @H_874_2@
@H_874_2@
//定义一个下载图片方法,线程调用 @H_874_2@
downloadImage(){ @H_874_2@
imageUrl = "http://hangge.com/blog/images/logo.png" @H_874_2@
data = try! Data (contentsOf: URL (String: imageUrl)!) @H_874_2@
print (data.count) @H_874_2@
} @H_874_2@
@H_874_2@
didReceiveMemoryWarning() { @H_874_2@
.didReceiveMemoryWarning() @H_874_2@
} @H_874_2@
} @H_874_2@ @H_874_2@
@H_874_2@ @H_874_2@
4,线程同步 线程同步方法通过锁来实现,每个线程都只用一个锁,这个锁与一个特定的线程关联。下面演示两个线程之间的同步。 @H_874_2@
29
@H_874_2@
30 @H_874_2@
31 @H_874_2@
32 @H_874_2@
33 @H_874_2@ @H_742_262@ 34 @H_874_2@
35 @H_874_2@
36 @H_874_2@
37 @H_874_2@
38 @H_874_2@
39 @H_874_2@
40 @H_874_2@
41 @H_874_2@
42 @H_874_2@
43 @H_874_2@
44 @H_874_2@
45 @H_874_2@
46 @H_874_2@
47 @H_874_2@
48 @H_874_2@
49 @H_874_2@ @H_122_301@ 50 @H_874_2@
51 @H_874_2@
52 @H_874_2@
53 @H_874_2@
54 @H_874_2@
55 @H_874_2@
56 @H_874_2@
57 @H_874_2@
58 @H_874_2@
59 @H_874_2@
60 @H_874_2@
61 @H_874_2@
62 @H_874_2@
63 @H_874_2@
64 @H_874_2@
65 @H_874_2@
66 @H_874_2@
67 @H_874_2@
68 @H_874_2@ //定义两个线程

大佬总结

以上是大佬教程为你收集整理的Swift - 多线程实现方式(1) - Thread全部内容,希望文章能够帮你解决Swift - 多线程实现方式(1) - Thread所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。