标签:应用 线程并发 结构 作用 大量 利用 技术分享 div 并行
?了解
:①线程是CPU执行任务的最小单位;
?了解
:②进程是CPU分配资源和调度的基本单位;
?了解
:③一个进程中可以拥有多条线程,且一个进程至少拥有一条线程(主线程);
?了解
:④同一个进程内的线程共享进程的资源。
?重要:
1、一个进程中可以开启多条线程,每条线程可以并行执行不同的任务。
?重要:
2、多线程技术可以在一定程度上提高程序的执行效率。
如下图所示:
?重要:
1、同一时间,CPU只能处理一条线程,只有一条线程在工作(执行);
?重要:
2、多线程并发执行,其实质是CPU快速的在多条线程之间调度、切换执行;即:如果CPU调度线程的时间足够快,就能够造成多线程并发执行的假象。
?备注:
思考:如果线程数量过多会造成什么后果?
答案
:①CPU忙于N条线程之间的调度、切换,消耗大量的CPU资源;②每条线程被调度执行的频次会降低(即:线程的执行效率降低)。
?重要:
①能适当提高程序的执行效率;
?重要:
②能适当提高资源利用率(CPU、内存利用率)。
?重要:
①创建线程是有开销的,iOS下主要成本包括:内核数据结构(大约1KB)、栈空间(子线程512KB、主线程1MB,也可以使用-setStackSize:设置,但必须是4KB的倍数,而且最小是16KB),创建线程大约需要90毫秒的创建时间;线程栈空间:
设置线程栈空间:
?重要:
②如果开启大量的线程,会降低程序的性能;且随着线程的增多CPU在调度线程上的开销也随之增大。
?重要:
③线程越多,程序设计越加复杂(例如:线程之间的通信、多条线程之间的数据共享)。
?了解:
一个iOS程序运行后,默认会开启1条线程,这条线程被称为“主线程”或UI线程。
?重要:
1、显示、刷新UI界面;
?重要:
2、处理UI事件(例如:点击事件、滚动事件、拖拽事件等)。
?重要:
1、不要将耗时操作放到主线程中执行;
?重要:
2、耗时操作会卡住主线程,严重影响UI刷新的流畅度;用户体验感很差。
?了解:
①查看线程的number == 1或者name == main;
?了解:
②NSThread的类方法isMainThread方法;
?了解:
③NSThread对象方法isMainThread方法。
标签:应用 线程并发 结构 作用 大量 利用 技术分享 div 并行
原文地址:http://www.cnblogs.com/leilifengixng/p/6367559.html