多线程理论知识 -- 小白的教程

多线程的概念:多线程

 

1.进程 —》车间  ,线程 —》 车间工人 (多个工人)并发

 

2.cpu 只能处理1条线程,cpu能够快速的在线程之间切换,因此形成了并发执行的错觉。app

 

3多线程的优缺点性能

 

 多线程的优势spa

能适当提升程序的执行效率线程

能适当提升资源利用率(CPU、内存利用率)设计

 

多线程的缺点code

 

开启线程须要占用必定的内存空间(默认状况下,主线程占用1M,子线程占用512KB),若是开启大量的线程,会占用大量的内存空间,下降程序的性能blog

线程越多,CPU在调度线程上的开销就越大进程

程序设计更加复杂:好比线程之间的通讯、多线程的数据共享

 

4.多线程在iOS开发中的应用

主线程:一个iOS程序运行后,默认会开启1条线程,称为“主线程”或“UI线程” 

 

主线程的主要做用

 

显示\刷新UI界面

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

主线程的使用注意:别将比较耗时的操做放到主线程中。

耗时操做会卡住主线程,严重影响UI的流畅度,给用户一种“卡”的坏体验

 

 

5.代码示例

复制代码
 1 //
 2 //  YYViewController.m
 3 //  01-阻塞主线程
 4 //
 5 //  Created by apple on 14-6-23.
 6 //  Copyright (c) 2014年 itcase. All rights reserved.
 7 //
 8 
 9 #import "YYViewController.h"
10 
11 @interface YYViewController ()
12 - (IBAction)btnClick;
13 @end
14 
15 
16 @implementation YYViewController
17 
18 
19 - (void)viewDidLoad
20 {
21     [super viewDidLoad];
22 }
23 
24 
25 //按钮的点击事件
26 - (IBAction)btnClick {
27     //1.获取当前线程
28     NSThread *current=[NSThread currentThread];
29     //2.使用for循环执行一些耗时操做
30     for (int i=0; i<10000; i++) {
31         //3.输出线程
32         NSLog(@"btnClick---%d---%@",i,current);
33     }
34 }
35 
36 @end
相关文章
相关标签/搜索