iOS多线程介绍

2020-01-15 15:21:45于海丽

2).类似关系列举:进程---->车间;线程---->车间工人

3).多线程图解,比如同时开启3个线程分别下载3个文件(文件A、B、C)

iOS,多线程

5、多线程原理

1).同一时间CPU只能执行一个线程,只有一个线程在工作(执行)。

2).多线程并发(同时)执行,其实是CPU快速的在多个线程之间调度(切换)。

3).如果CPU调度线程的速度够快,就会造成多线程并发执行的假象。

4).多线程的缺点:

1、每个线程都会占用一定的内存空间(默认情况下:主线程占用1MB,子线程占用512KB),

如果开启线程过多会占用大量的内存空间因而造成程序性能降低。

2、线程越多CPU调度线程上的开销就越大(类似工厂工人越多,工厂开销也越大)。

3、使程序设计更复杂:比如多线程的数据通信,多线程之间的数据共享。

5).多线程的优点:

1、能适当提高程序的执行效率。

2、能适当提高资源利用率(CPU、内存的利用率)

6、什么是主线程?

1).一个iOS程序开启后默认会开启一个线程,这个线程被称为"主线程"或"UI线程"。

2).主线程的主要作用:

1、显示/刷新UI界面

2、处理UI事件(比如点击事件、滚动事件、拖拽事件等)

3).主线程注意点:

1、别将耗时的操作放在主线程中,耗时操作放在主线程中会造成程序卡顿的问题。

7、耗时操作Demo演示

1)、直接在主线程中运行的Demo


-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
//获取当前执行方法和当前线程
//number== 主线程
//number!= 其他线程、子线程、次线程
NSLog(@"%s----%@",__func__,[NSThread currentThread]);
//直接在主线程中运行 造成UI操作卡顿
[self longTimeOperation];
}
#pragma mark-耗时操作
-(void)longTimeOperation{
for (int i=; i<; i++) {
NSLog(@"%d",i);
}
}