五、多线程基础网络
线程间通讯
什么叫线程间通讯
在一个进程中,线程每每不是孤立存在的,多个线程之间须要常常进行通讯
线程间通讯的体现
1个线程传递数据给另外一个线程
在1个线程中执行完特定任务后,
- 线程间通讯的体现
- 1个线程传递数据给另1个线程
- 在1个线程中执行完特定任务后,转到另1个线程继续执行任务
线程间通讯经常使用方法 perform执行 selector选择器
- (
void
)
performSelectorOnMainThread
:(
SEL
)
aSelector
withObject
:(
id
)
arg
waitUntilDone
:(
BOOL
)wait;
- (
void
)
performSelector
:(
SEL
)
aSelector
onThread
:(
NSThread
*)
thr
withObject
:(
id
)
arg
waitUntilDone
:(
BOOL
)wait;
上面两个方法是对象方法,继承NSObject的对象都能使用。
代码(以加载网络上的图片为例)
这里先给一个网络图片下载的地址,蛮高清的图片哦:
在敲代码以前,要在info.plist项目文件中添加一个设置
由于自从XCode 7.0以后,从网络加载就须要本身手动在info.plist文件中添加设置App Transport Security Settings这个选项

不使用多线程的操做

下面咱们须要采用一些方法来获取一段代码的执行获取的时间
- 第一种方法

- 第二种方法

而后切入正题,在子线程中发送消息给主线程,也是两种方法:
- 方法一

注意上面的代码用了NSThread的sleep方法,让其睡眠3秒钟。
- 方法二

关于这个第三种方法,能够看看个人总结,而后基本能够达到不用看源码快速本身敲出代码:
